第59回 引数が多いときのための「名前付き引数」

何か自分で関数を作っているときなどで、
やけにその関数にもらう引数の数が多くなってしまうときはないだろうか?
そんなときは、なにをどの順でもらうかなど意味のないところで足踏みしてしまったり、
呼び出す方も、ええと第1引数が、あれで第2引数があれで、えーと3番目と4番目はどっちが先だっけ?
みたいなことになってしまう。


そこで、
引数に名前をつける!
名前をつけると非常にわかりやすくなるし、もらう順番はバラバラ(適当)でもよいのだ!


それを実現するには無名ハッシュを使う。

use strict;

sub hoge {
  my $c = shift;
  print $c->{'hoge'}, "\n";
  print $c->{'foo'},  "\n";
}

hoge( {'hoge'=>10, 'foo'=>20 } );

print "---------", "\n";


hoge( {'foo'=>20, 'hoge'=>10 } );

結果:

10
20
---------
10
20


詳しいことは、

Perlベストプラクティス

Perlベストプラクティス

に載っています。