マップ関数のようなものを受け入れる関数を書くにはどうすればよいですか?Perlサブ関数に関数を渡すにはどうすればよいですか?
例:
$func = sub { print $_[0], "hi\n" };
&something($f);
sub something
{
my $func = shift;
for ($i = 0; $i < 5; $i++)
{ $func->($i); }
}
正常に動作します
。
が、その後、私は
&something({ print $_[0], "hi\n" });
それ文句を言わない仕事をしたし、funcが未定義の参照であると言います。
私の質問は、どのように私はperlsマップ関数のようなパラメータを受け入れる関数を書くだろうか?
map { s/a/b/g } @somelist;
+1。私は$ _を "for"ステートメントでローカライズするというアイデアが好きです.1つの引数のファンクションを素敵で簡潔にすることができます。 (そして、私はあなたが "local($ a、$ b);" 2-arg funcrefs a la sort()のためにできると思います。) –