2009-04-08

Perl配列Aから配列Bにある要素を取り除くには?

@itemsから@keyにある要素を除いたリストを@updateとして欲しいのですが、

下記のコードよりも、より高速な記述があれば是非ご教授くださいませ。

my @update = grep { my $a = 1; foreach my $b (@key) { $a = 0 if $_ eq $b; } $a; } @items;

  • http://anond.hatelabo.jp/20090408034449 リスト内の有無を複数回調べるときの定石は、事前にハッシュに突っ込んでおく方法です。 元のコードはgrep内でリニアサーチをやっているわけですから、...

    • ありがとうございます。ベンチを取ってみると、ハッシュの方が速かったです。 UPSERT処理SQLの汎用化に使用中なのですが、プロファイルすると結構時間をくっていたので、key設定時まで...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん