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