in reply to Assigning default values to function arguments which may be “empty”

Checking the length is a common way. If you are concerned about a new variable, use the one Perl already created for you:
sub f { length $_[0] ? $_[0] : 'default_value'; }

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,