-1
PerlConsole::Console::interpret(/home/perlconsole-0.4/lib/PerlConsole/Console.pm:281):
281: Module::Refresh->refresh;
DB<5> s
Module::Refresh::CODE(0x70a340)(/home/perlconsole-0.4/depends/Module-Refresh-0.16/lib/Module/Refresh.pm:205):
205: *$sym = sub { goto &$code };
有沒有人可以解釋這一點?爲什麼調用Module :: Refresh-> refresh會被重定向到Module :: Refresh :: CODE?
UPDATE
這似乎是由該塊造成的:
BEGIN {
no strict 'refs';
foreach my $sym (sort keys %{ __PACKAGE__ . '::' }) {
next
if $sym eq
'VERSION'; # Skip the version sub, inherited from UNIVERSAL
my $code = __PACKAGE__->can($sym) or next;
delete ${ __PACKAGE__ . '::' }{$sym};
*$sym = sub { goto &$code };
}
}
但是,爲什麼?有什麼不同??
是的,我讀了那條評論,但是我沒有看到**如何**它可以實現目標.. – asker
你有沒有試過用'perl -d'調試這個模塊,它總是掛在這裏...... – asker
在重新加載時,模塊刪除(命名的)蹦牀,而不是原始(匿名)的子彈。只有在重新加載後,原件纔會被刪除,當它們被垃圾收集時。 –