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