use Modern::Perl; sub AUTOLOAD { our $AUTOLOAD; state %stuff; return @_ unless $AUTOLOAD=~/scalar/; return $stuff{$AUTOLOAD}++ ? eval $AUTOLOAD.'recursed(@_[1..$#_])' : $_[0]; } my @key = map { autosub_scalariffic_list('A','B','C'), $_ } autosub_list(1,2,3); say qq{@key};