我想將子程序與參數一起推入堆棧,但我無法弄清楚語法。考慮一個工作示例不帶任何參數:將帶參數的子程序推入Perl中的堆棧
#!/usr/bin/perl -w
use strict;
use warnings;
sub hi { print "hi\n"; }
sub hello { print "hello\n"; }
sub world { print "world\n"; }
my @stack;
push (@stack, \&hi );
push (@stack, \&hello);
push (@stack, \&world);
while (@stack) {
my $proc = pop @stack;
$proc->();
}
,當我運行代碼:
% ./pop-proc.pl
world
hello
hi
現在的問題是,如果子程序是什麼樣子的:
sub mysub
{
chomp(my($arg) = @_);
print "$arg\n";
}
和我'd喜歡用參數推子程序,例如:
mysub("hello");
mysub("world");
您的意見非常感謝。
'&$ proc'意味着一些非常特殊的東西。你的意思是使用'&$ proc()'或更清晰的'$ proc - >()'。 – ikegami
謝謝@ikegami。我已經修改了我的示例代碼,按照您的建議使用'$ proc - >()' –