[Moscow.pm] функция не из нашего пакета
Alexander Lourier
aml на rulezz.ru
Пн Дек 29 01:51:02 PST 2008
On Monday 29 December 2008 12:37:44 Vladimir V. Perepelitsa wrote:
> &App::foo и &main::foo это ссылки на одну и ту-же функцию.
> так что выяснить что является настоящим именем, а что алиасом -
> неоднозначно. можно к примеру пройтись рекурсивно по всем неймспейсам и
> найти все имена по равенству ссылок.
Тоже хотел так ответить сначала. А потом подумал, что caller каким-то макаром
догадывается о настоящем имени.
==
package Ap;
use base 'Exporter';
our @EXPORT=qw(foo);
sub foo
{
my @caller = caller(0);
use Data::Dumper;
print STDERR Dumper(\@caller);
return 'blah';
}
package main;
Ap->import();
sub foo1
{
return 'blah2';
}
foo();
==
Выдает:
~$ perl a.pl
$VAR1 = [
'main',
'a.pl',
25,
'Ap::foo',
1,
0,
undef,
undef,
256,
'',
undef
];
> > имеется некая функция, скажем foo.
> >
> > как можно узнать из какого пакета данная функция?
Подробная информация о списке рассылки Moscow-pm