sub fred { ... unless( defined wantarray ) { ...void context } elsif( wantarray ) { ...list context } else { ...scalar context } } #### fred(); # void my $fred = fred(); # scalar my( $fred ) = fred(); # list (because of the parens) my @fred = fred; # list print fred(); # list, print is a list operator print scalar fred(); # scalar