Portál AbcLinuxu, 12. května 2025 08:18

Dotaz: Export prommenne v perlu

22.11.2009 00:16 Mr.S1lent.cz
Export prommenne v perlu
Přečteno: 100×
Odpovědět | Admin
Zdravim, chtel bych zde vyresit jeste jeden problem. Mam moduly, kde exportuji promennou $level timto zpusobem:

use base qw (Exporter); our @EXPORT = qw ( $level ); our $level = 3;

a potrebuji ji nejak ziskat v jinem scriptu, kam tyto moduly loaduju. Problem je ten, ze dane moduly loaduju pomoci require az v tele metody a navic pomoci evalu. Nevi nekdo, jak tuto exportovanou promennou $level ziskat? Prikladu je na netu spousta, jen jsou vsechny pro moduly loadovane pomoci "use" :-(

Predem vsem dekuji za odpoved :-)


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

22.11.2009 03:00 Mr.S1lent.cz
Rozbalit Rozbalit vše Re: Export prommenne v perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Omlouvam se, pripadam si jak lamer, nakonec jsem odpoved vygooglil, i kdyz to dalo docela zabrat :-) Zde nabizim reseni:

package: use base qw ( Exporter ); our @EXPORT = qw( $var); our $var = 'value';

get export variable: require class; class->import( qw( $var ) );
22.11.2009 17:42 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Export prommenne v perlu
Tohle je ale ekvivalent "use class qw/$var/", takže můžete to use použít rovnou.
In Ada the typical infinite loop would normally be terminated by detonation.
22.11.2009 09:28 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Export prommenne v perlu
Odpovědět | | Sbalit | Link | Blokovat | Admin
IMHO require neimportuje nikdy nic. Import se provádí pouze při use.

Můžete buď uvnitř evalu použít use, nebo k proměnné přistupovat přes Jmeno::Modulu::level.
In Ada the typical infinite loop would normally be terminated by detonation.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.