Perlではまる。連想配列の参照渡しってたまにしか使わないし書式もいつもの変数と違うから、久しぶりに書いてみようとおもったらすっかりやり方を忘れてしまっていてうまく動かずにはまった。受け手側は%$hogeと書くのですね。オフィスのペーパーレス化で専門書を手元に置くことも御法度になってしまったのでやり方がわかるまであーでもない、こーでもないと30分以上かかった。時間の無駄。
で、具体的なソースの書き方は下の例のようになる。いろいろ他にも書き方はあるけれど一番オーソドックスな書き方です。
@common = inter( \%foo, \%bar, \%joe );
sub inter {
my ($k, $href, %seen); # ローカル変数
foreach $href (@_) {
while ( $k = each %$href ) {
$seen{$k}++;
}
}
return grep { $seen{$_} == @_ } keys %seen;
}
0 件のコメント:
コメントを投稿