>>>>> "JJ" == Jackie Jackie <[email protected]> writes:
JJ> I just want to replace the first occurrence of fish by red
JJ> bird. The second occurrence by brown bear. etc.
then you should have stated this in the first posting. it was not clear
at all what you wanted.
>> fish/red bird
>> fish/brown bear
>> fish/lion
>> red fish/animal
note that that will fail because 'fish' is part of 'red fish' so you
have to do 'red fish' replacements first. you didn't specify that so i
won't consider it. you really need to learn how to make tighter
specifications.
<untested>
my %replace_values = (
'fish' => [ 'red bird', 'brown bear', 'lion' ],
'red fish' => [ 'animal' ],
) ;
while( my ($key, $vals ) = each %replace_values ) {
foreach my $replace_val ( @{$vals} ) {
$text =~ s/$key/$replace_val/ ;
}
}
if you were fine with running out of replacement values and substituting
a null string, then this works and is cute code. but it also destroys
the replacement value arrays.
while( my ($key, $vals ) = each %replace_values ) {
$text =~ s/$key/shift @{$vals}/e ;
}
uri
--
Uri Guttman ------ [email protected] -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/