|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 25 Mar 2003 17:23:55 To : vad@tomsknet.ru Subject : Re: Mason & ext. module --------------------------------------------------------------------------------
vad@tomsknet.ru wrote:
> Hi, All!
>
> Hе могу понять, в чем здесь дело.
> Использую Mason. Конфигурация:
>
> в handler.pl :
> {
> package HTML::Mason::Commands;
> ...
> use lib '/path/to/my/lib';
> use MY::Lib;
> ...
> }
>
> в /path/to/my/lib/MY/Lib.pm:
>
> package MY::Lib;
>
> use strict;
> use Exporter;
> use vars qw(@ISA @EXPORT $VERSION);
>
> BEGIN {
> $VERSION = 1.00;
> @ISA = qw(Exporter);
> @EXPORT = qw( %h );
> }
>
> my %h = ( a => 'b' );
>
> 1;
>
> в test.html:
> ....
>
> <% $h{a} %>
>
> ....
>
> не выводит ничего, но на необъявленную переменную не ругается.
> Пробовал подключать модуль в <%once>-секции компонента, тот же
> эффект. Что не так с этим несчастным модулем?
>
Да все не так. Hапример с того, что lexical scope переменные не
экспортируются ибо не имеют записей в таблице имен. Во вторых, то
что таки экспортируется - экспортируется в пространство имен
откуда производится вызов import (или use). То есть в данном
случае в HTML::Mason::Commands. И в пространстве имен скрипта
test.html все равно не будет видно.
--
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/65778068fda8.html, оценка из 5, голосов 10
|