Home > Logs > September 2007 > This Entry

サブルーチンに引数で複数の配列やハッシュを渡す場合

便利機能のひとつであるリファレンスを使うべし。

my @array = (1, 2, 3, 4, 5);
my %hash = ( '人間' => 'なんでやねん', '猫' => 'にゃんでやねん' );

&debug_disp(\@array, \%hash);;

sub debug_disp {
  my ($array_ref, $hash_ref) = @_;

  print "@$array_ref\n";
  print "$array_ref->[0]\n";
  print "$hash_ref->{'人間'}";
}

出力結果は以下のようになります。

12345
1
なんでやねん

検索システム組むときなんかに使うと便利。複数の条件クエリを配列に入れてサブルーチンに引き渡し、サブルーチンの方ですべてのMT関連オブジェクトを読み込み、そのうち受け取ったクエリ条件にマッチするものだけを処理したりするのに便利。スペースで区切られた複数のキーワードにマッチするかどうか、foreach でループかけて調べる場合とか。渡す配列が一つだけと決まってるなら必要ないのだけれども。

Post Comment




Copyright © okayama, Powered by Movable Type Open Source