At the time, I thought it made a lot of sense, after using other languages where this feature was standard and required.
However, I've since abandoned its use in Perl, because the traditional Perl way is much more flexible.
I do try to keep my `shift` statements towards the top of a sub, however.
sub PaintHouse {
my $house = shift;
my $color = shift;
if (!$house || !$color) {
WriteLog('PaintHouse: warning: sanity check failed');
return '';
}
print "painting $house with $color paint";
return 1;
}