in reply to Chaining string ops
The first method favors long lists of strings to undergo the same substitutions. For example, if $str were actually a large array called @str, you would probably favor the first method.
The second method favors lots of substitutions to be performed for a single string.
my $str = "the boy walked the dog"; for ( $str ) { s/walked/fed/; s/boy/girl/; s/dog/Audrey II/; }
This method just relies on the fact that the for statement causes $_ to alias $str within the scope of the for statement. And regexp binding (=~) binds to $_ if there is no other variable specified.
You could also do it this way:
my $str = "the boy walked the dog"; my %subs = ( "walked", "fed", "boy", "girl", "dog", "Audrey II" ); foreach ( keys %subs ) { $str =~ s/$_/$subs{$_}/; }
This method is pretty much opposite of my first example. But it can be handy if you have a lot of substitutions.
Dave
"If I had my life to do over again, I'd be a plumber." -- Albert Einstein
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Chaining string ops
by Aristotle (Chancellor) on Aug 28, 2003 at 18:08 UTC | |
by davido (Cardinal) on Aug 28, 2003 at 18:24 UTC | |
by RMGir (Prior) on Aug 28, 2003 at 19:29 UTC |