more useful options | |
PerlMonks |
Re: Variable assignment confusionby fruiture (Curate) |
on Dec 15, 2003 at 17:48 UTC ( [id://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
|
|