goto 和 func; 之间有什么区别吗?和功能;在 Perl 中?

发布于 2024-11-24 07:07:54 字数 84 浏览 2 评论 0原文

goto &func;

&func;

经过一番测试,他们两个看起来很相似,是这样吗?

goto &func;

&func;

They two seems identical to me after some test,is that the case?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烦人精 2024-12-01 07:07:54

有很大的区别。检查这里: perl-goto

There is a substantial difference. Check here: perl-goto

埖埖迣鎅 2024-12-01 07:07:54

您运行了错误的测试。使用 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

You were running the wrong tests. Use caller to see what is going on.

#!/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();

When you run it, you'll see something like:

$  ~/stuff/goto
sub:
main::foo
main::bar

goto:
main::foo
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文