[Moscow.pm] экспорт/импорт
Dmitry E. Oboukhov
unera на debian.org
Пн Дек 8 07:53:34 PST 2008
cat A.pm
package A;
sub import { printf "import A: %s\n", join " ", @_; }
print "== A ==\n";
1;
забыл привести A.pm
впрочем из теста видно :)
Tmppo> apache:[~]$ cat AA.pm
Tmppo> package AA;
Tmppo> use A from => 'AA';
Tmppo> sub import { printf "import AA: %s\n", join " ", @_; }
Tmppo> print "== AA ==\n";
Tmppo> 1;
Tmppo> apache:[~]$ cat test.pl
Tmppo> use warnings;
Tmppo> use strict;
Tmppo> use A from => 'main';
Tmppo> use AA from => 'main';
Tmppo> print "main\n";
Tmppo> apache:[~]$ perl test.pl
Tmppo> == A ==
Tmppo> import A: A from main
Tmppo> import A: A from AA
Tmppo> == AA ==
Tmppo> import AA: AA from main
Tmppo> main
Tmppo> то есть в импорте имеем имя текущего модуля и параметры импорта.
Tmppo> А как узнать в этой функции ИЗ какого модуля нас экспортируют?
Tmppo> то есть чтобы нечто вроде сборщика статистики пишется, хочется
Tmppo> чтобы написали в модуле use blah;
Tmppo> и далее print blah->foos;
Tmppo> вывели перечень функций в ДАННОМ модуле.
Tmppo> соответственно для реализации такой возможности нужно в импортируемом
Tmppo> знать откуда нас импортируют
Tmppo> КАК?
Tmppo> --
Tmppo> ... mpd is off
Tmppo> . ''`. Dmitry E. Oboukhov
Tmppo> : :’ : email: unera на debian.org jabber://UNera@uvw.ru
Tmppo> `. `~’ GPGKey: 1024D / F8E26537 2006-11-21
Tmppo> `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
--
... mpd is off
. ''`. Dmitry E. Oboukhov
: :’ : email: unera на debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: отсутствует
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20081208/2d8f3ad2/attachment.bin>
Подробная информация о списке рассылки Moscow-pm