in reply to Variable assignment confusion
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
http://fruiture.de
|
---|
In Section
Seekers of Perl Wisdom