さじろーどっとねっと
<配列から、必要なレコードだけ抽出する。>

2000/08/19-02:21:49
これは結構戸惑いました。

なんでなぜかって言うと、日本語の場合、検索で引っかからないケースが良くあります。これを解消するためにはどうすれば良いかって考えたらちょっと大変でした。

日本語が入っていなければこんな感じで書けます。

@data=("aaa<>01","bbb<>02","ccc<>03","ddd<>04");
# @dataの中からaaaを含むレコードを抽出します。
@kekka=grep(/aaa/,@data);
print "@kekka";

出力されるのはこのレコードです。
aaa<>01

しかし、日本語が入ってしまうと上手く行きません。これは一部の日本語がうまく検索できないからだと思います。そんでこんな感じで、grepの中にindexを追加します。

@data=("あああ<>01","いいい<>02","ううう<>03","えええ<>04");
# @dataの中から“あああ”を含むレコードを抽出します。
@kekka=grep(index("$_","あああ")>=0,@data);
print "@kekka";

出力されるのはこのレコードです。
あああ<>01

grepの使い方ですが、こうすればなんとかできます。でもパフォーマンス的には良く解りません。indexって関数は、文字列の検索です。検索文字列があれば、その文字数を返します。無ければ0未満の数字が帰ってきます。

結構使えると思いますが...どうでしょう?

ブックマークに追加する