初春や助手ならこんな事は無い
2012年2月22日 Perl コメント (2)今日も今日とて抜け道探し。
同一数の多重化チェック。2つ以上ならエラーとしてみなす。
途中で桁合わせ(つまりsprintf)していなかったせいで多重化チェックが働いていない罠。
この場合は配列の"数値"としては同じだが、 04001 と 4001 のチェックがスルーされる。
しかもこの処理の後に表示する前にsprintfされていたから表記上は発見出来ず、見つけるまでに時間がかかってしまった。大いに反省。
# オブラートに包んだ内容だけど、詳しく書くとアレなので省略
# 追記:@error配列にmyが無かった
初春や助手ならこんな事無いんだろうけどなぁ…
~この前に何かの処理
my @array = (’04001’,’4001’,’03001’,’5001’);
my %hash = ();
foreach(@array){
$hash{"$_"}++;
}
my @error = ();
foreach(sort keys %hash){
push(@error,$_) if($hash{"$_"} > 1);
}
これ以降何かの処理~
同一数の多重化チェック。2つ以上ならエラーとしてみなす。
途中で桁合わせ(つまりsprintf)していなかったせいで多重化チェックが働いていない罠。
この場合は配列の"数値"としては同じだが、 04001 と 4001 のチェックがスルーされる。
しかもこの処理の後に表示する前にsprintfされていたから表記上は発見出来ず、見つけるまでに時間がかかってしまった。大いに反省。
# オブラートに包んだ内容だけど、詳しく書くとアレなので省略
# 追記:@error配列にmyが無かった
初春や助手ならこんな事無いんだろうけどなぁ…
コメント
僕はね初春のパンツよりも佐天さんのパンツの方が・・・