Есть ли разница ч / б goto & func;и & func;в Perl? - PullRequest
3 голосов
/ 15 июля 2011
goto &func;

&func;

Они двое кажутся мне идентичными после некоторого теста, это так?

Ответы [ 2 ]

5 голосов
/ 15 июля 2011

Есть существенная разница.Проверьте здесь: perl-goto

4 голосов
/ 15 июля 2011

Вы выполняли неправильные тесты.Используйте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...