Представьте себе эту подпрограмму:
sub test(&&)
{
my $cr1 = shift;
my $cr2 = shift;
$cr1->();
$cr2->();
}
Я знаю, что могу назвать это как: test(\&sub1,\&sub2)
, но как я могу назвать это как:
test { print 1 },{ print 2 };
Если я скажу, что подпрограмма занимает только один &
, то отправка блока будет работать. Я не знаю, как заставить это работать с 2.
Если я попытаюсь запустить его таким образом, я получу:
Not enough arguments for main::test at script.pl line 38, near "},"
РЕДАКТИРОВАТЬ: нет никакого способа вызвать без sub
?