expand uvozovek
Honza Pazdziora
adelton na informatics.muni.cz
Pátek Červen 25 09:30:58 MEST 2004
On Thu, Jun 24, 2004 at 09:29:45PM +0200, Jiri Polcar wrote:
>
> v promenne $a mam retezec, ktery obsahuje nejake specialni znaky,
> napriklad "\n", ale retezec je uveden v apostrovech. Jak prinutim Perl,
> aby specialni znaky v retezci vyhodnotil? Uvedu priklad:
>
> mam
>
> $a = '-\npepa\n-';
>
> a chci aby v $b bylo
>
> $b = "-\npepa\n-";
>
> Mam jedno reseni:
>
> $b = eval qq["$a"];
>
> ale to nemohu pouzit, protoze $a muze obsahovat i kusy kodu Perlu a
> eval() pak vyhodi vyjimku.
Pokud nemate obsah toho $a pod kontrolou, pak nezbyde, nez vypsat
seznam veci, ktere chcete, aby se prevedly, a prevest jenom ty.
Napriklad
my %mapovani = (
'\n' => "\n",
'\t' => "\t",
'\b' => "\b",
'\k' => "krtek",
'\0' => "\0",
);
$a =~ s/(\\.)/ exists $mapovani{$1} ? $mapovani{$1} : $1 /ge;
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
Only self-confident people can be simple.
Další informace o konferenci Perl