my @files = qw( foo bar bat ); @files = byvalue( @files ); byreference( \@files ); sub add_txt_by_value { my @array = @_; foreach ( @array ) { $_ .= ".txt"; } return @array; } sub add_txt_by_reference { my $arrayref = shift; foreach ( @$arrayref ) { $_ .= ".txt"; } }