utf8 data, il2 skript a Cz::Cstocs

Honza Pazdziora adelton na fi.muni.cz
Čtvrtek Leden 4 17:45:24 MET 2007


On Thu, Jan 04, 2007 at 12:43:55AM +0100, Pavel Smerk wrote:
> 
> V perlrun se pise "The #! line is always examined for switches as the line
> is being parsed." Asi mam nejak zatmeno, ale chapu to tak, ze se ty switche
> na prvnim radku skriptu pouziji, jako by byly na prikazove radce. Jak je pak
> ale mozne tohle:
> 
> $ cat test.pl
> #!/usr/bin/perl -CSD
> use encoding 'latin2';
> while (<>) { print if /á/; }
> $ echo -e 'á\na' | cstocs il2 utf8 | perl test.pl | cstocs utf8 il2
> $ echo -e 'á\na' | cstocs il2 utf8 | perl -CSD test.pl | cstocs utf8 il2
> á
> $
> 
> Proc ty switche v prvnim pripade ignoruje?

Předpokládám, že to je featura, nebo tak.

> A dale, jak se spravne rekne, ze mam data (vstupy/vystupy) v utf8, ale
> skript v il2? Podle perluniintro jsem pouzil -CSD a use encoding 'latin2'.
> Jenze pak se mi nedari pouzit Cz::Cstocs:
> 
> $ perl -e 'use Cz::Cstocs "il2_ascii"; print il2_ascii("ěščřžýáíé"), "\n"'
> escrzyaie
> $ perl -e 'use encoding "latin2"; use Cz::Cstocs "il2_ascii"; print il2_ascii("ěščřžýáíé"), "\n"'
> yaie
> $
> 
> Ja bych potreboval vysledek jako v prvnim pripade i pro use encoding
> "latin2" (pokud teda se tak spravne rika, ze skript je v tomto kodovani).
> Nebo to mam do ascii prekodovavat nejak jinak? Jak (z Encode::encode/from_to
> jsem to nedokazal vyrazit)?

Cz::cstocs jede v bajtové sémantice, nikoli ve znakové. Jakmile řekneš
use encoding, implikuješ pro literální řetězce znakovou sémantiku.

Používej všude UTF-8.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
             .project: Perl, C, Red Hat Network, IPv6, VoIP
		Only self-confident people can be simple.


Další informace o konferenci Perl