http://qs1969.pair.com?node_id=161091

thelenm has asked for the wisdom of the Perl Monks concerning the following question:

This question has been on my mind quite a bit, but I haven't found a good answer anywhere online or in the O'Reilly books:

What is the preferred style for assigning default values to subroutine parameters? I have been using the following in some cases:

sub mysub { my $foo = shift || 'default'; # do stuff }

But this breaks down when '0' (or some other "false" value) is a valid parameter value. I'd like to test whether the parameter is defined, and only assign a default if it is undefined. The best I have come up with is:

sub mysub { my $foo = shift; $foo = 'default' unless defined $foo; # do stuff }
But what a pain to type. Is there a shorter/better way?