Slozitejsi nahrazovani retezcu
Vaclav Ovsik
Vaclav.Ovsik na i.cz
Pátek Leden 25 13:44:09 CET 2002
On Fri, Jan 25, 2002 at 12:40:43PM +0100, Pavel Lisy wrote:
...
> Potom jsem se to zkoušel přepsat do perlu, ale nevím, jak docílit toho,
> že se mi nahrazující řetězec napřed zpracuje mojí funkcí:
>
> -------
> sub correctdate () {
> local $rok=$1;
> local $mes=$2;
> local $den=$3;
> print "$den:$mes:$rok"
> }
>
> open(INFILE,"data.sql");
> open(OUTFILE,">data.out");
>
> while ( defined($line=<INFILE>) ) {
> $line =~ s/(\d{4})-(\d{2})-(\d{2})/&correctdate($1:$2:$3)/;
> print OUTFILE $line;
> }
> close(OUTFILE);
> close(INFILE);
> ---------
>
> Uvítám každý pokus :-)
Zrejem mate na mysli modifikator e, viz man perlop(1p).
...
Options are:
e Evaluate the right side as an expression.
g Replace globally, i.e., all occurrences.
i Do case-insensitive pattern matching.
m Treat string as multiple lines.
o Compile pattern only once.
s Treat string as single line.
x Use extended regular expressions.
...
Kazdopadne minimalne argumenty se oddeluji ',' a ne ':'. :-)
V te substituci by se take mozna hoil i g, pokud jich muze byt vice na radce.
--
Vaclav Ovsik email: Vaclav.Ovsik na i.cz
ICZ a.s. phone: +420 19 7488511
fax: +420 19 7488506
Další informace o konferenci Linux