Jak funguje use locale?
Pavel Smerk
xsmerk na informatics.muni.cz
Čtvrtek Srpen 26 19:53:20 MEST 2004
On Thu, Aug 26, 2004 at 06:12:26PM +0200, Honza Pazdziora wrote:
> On Thu, Aug 26, 2004 at 05:00:36PM +0200, Pavel Smerk wrote:
> >
> > chtel jsem pouzit Parse::Earley a Parse::RecDescent na parsovani veci
> > obsahujicich diakritiku. Mel jsem na zacatku (pred use Parse::*) sveho
> > skriptu use locale, ale /[[:alpha:]]/ mi nematchovalo pismenka s
> > diakritikou. Vse fungovalo, az kdyz jsem use locale vlozil i na zacatek
> > zminovanych modulu.
> >
> > Proc to tak je? man 3perl locale rika, ze use locale "affects statements to
> > the end of the enclosing BLOCK". Tak to by snad mel muj pripad splnovat i
> > bez prepisovani pouzitych modulu, ne? Asi jsem nejak mimo. :)
>
> No, na urovni toho bloku, ne v jinem modulu.
No fakt... Ja myslel, ze to ovlivni i v tom samem bloku vkladane moduly,
vzdyt v dokumentaci se pise, ze use je vlastne require, require vlastne do a
do "is just like" scalar eval `cat file`. Napriklad use strict pak skutecne
pusobi dojmem, ze se prenasi i do takto vkladanych souboru:
$ perl
use strict;
open A, ">tmp";
print A '$tmp = 1';
close A;
scalar eval `cat tmp` or die $@;
__END__
Global symbol "$tmp" requires explicit package name at (eval 1) line 1.
Ovsem pokud bude posledni radek jen do 'tmp', projde to.
> Jinak ale doporucuji prejit na utf8.
use utf8 se mi "zdedi" nejak lepe, nez use locale? Ale stejne bych radeji
umel tohle pouzitemu modulu zapnout, aniz bych ho musel editovat.
> Pred nejakou dobou to tu probihalo.
No jo, ale je od toho nekde archiv? Jak se to nezrcadli do newsu, tak to asi
nikde nenajdu.
Diky, P.
Další informace o konferenci Perl