in reply to Variable assignment confusion
Apart from the ternary operator suggested by several, here are a few bletcherous but possibly instructive ways to turn it into one assignment:my $new_retid = $retid; $new_retid .= '_001' unless $retid =~ /_\d{3}$/;
my $new_retid = $retid . '_001' x $retid !~ /_\d{3}$/;
(my $new_retid = $retid) .= do {'_001' unless $retid =~ /_\d{3}$/};
Update:my $new_retid = $retid . ($retid !~ /_\d{3}$/ and '_001');
And one inspired by delerium's post above:(my $new_retid = $retid) =~ s/(?<!_\d{3})$/_001/;
my ($new_retid) = grep( $_, $retid =~ /(^\d{4}_\d{3})$/, $retid.'_001' +);
|
|---|