|
|
| No such thing as a small change | |
| PerlMonks |
Re: Variable assignment confusionby fruiture (Curate) |
| on Dec 15, 2003 at 17:48 UTC ( #314862=note: print w/ replies, xml ) | Need Help?? |
|
Well, you're assigning either the result of a match or, if the match is without success, the retid + "_001". It's not true that this always assigns 1, it only assigns 1 when the match is successfull, because a simple m// returns a boolean (undef or 1) and || will return it's left operand's result if it's true. What you want is, as you said:
# parens not neccessary here
my $new_retid =
# if the retid has the suffix
$retid =~ /_\d{3}$/ ?
# then leave it as is
$retid :
# otherwise add _001 suffix
$retid.'_001'
See perlop for "?:" and the behaviour of m//. HTH
-- http://fruiture.de
In Section
Seekers of Perl Wisdom
|
|
||||||||||||||||||||