我該如何編寫一個接受類似map函數的函數呢?如何將函數傳遞給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函數?
map { s/a/b/g } @somelist;
+1。我喜歡用「for」語句對$ _進行本地化的想法 - 允許1-arg funcrefs變得簡潔明瞭。 (我想你可以「本地($ a,$ b);」對於2-arg funcrefs la sort()。) – 2009-08-22 18:06:59