goto &func;
&func;
经过一番测试,他们两个看起来和我相同,就是这样吗?
答案 0 :(得分:5)
存在很大差异。点击此处:perl-goto
答案 1 :(得分:4)
您正在运行错误的测试。使用caller查看发生了什么。
#!/usr/bin/perl
use strict;
use warnings;
sub foo {
my $level = 0;
while (my $sub = (caller($level))[3]) {
print "$sub\n";
++$level;
}
print "\n";
}
sub bar {
print "sub:\n";
&foo;
}
sub baz {
print "goto:\n";
goto &foo;
}
bar();
baz();
当你运行它时,你会看到类似的东西:
$ ~/stuff/goto
sub:
main::foo
main::bar
goto:
main::foo