- 180 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 21:26:32 ]
- 下のファイルを読んで、XXX, YYY, ZZZのいずれかでなければ
値を取り込むプログラムを作りたいです。 ==== AAA BBB CCC …… ==== my @prohibit = ('XXX', 'YYY', 'ZZZ'); my @keep; if ($_ !~ /$prohibit[0]/ && $_ !~ /$prohibit[1]/ && $_ !~ /$prohibit[2]/ ) { push @keep, $_; } とすればまあできるんですが、 my @prohibit に禁止文字の追加や削除をしたときに困ってしまいます。 if ($_ !~ /@prohibit/ ) はエラーになります。 下の $ifif を作っても if 文が中身を把握してくれません。どのようにすればよいでしょうか? my $ifif; foreach my $i (0 .. $#{@prohibit}) { $ifif = $ifif . sprintf " \$prohibit\[$i\] =\~ \/\^%s\/ \&\&", $prohibit[$i]; } $ifif = $ifif . ' 0 == 0';
|

|