sub foo(\@) { my ($array) = @_; $_ = uc($_) for @$array; } my @array = qw( foo bar Foo Bar ); foo @{ sub { \@_ }->( grep /^[A-Z]/, @array ) }; print "$_\n" for @array; #### foo bar FOO BAR #### sub foo { $_ = uc($_) for @_; } my @array = qw( foo bar Foo Bar ); foo grep /^[A-Z]/, @array; print "$_\n" for @array; #### foo bar FOO BAR