Join and split are sexy, but I rarely use map. It doesn't offer that much in the way of speed difference vs for (which, btw, can be the same as foreach in Perl, only shorter to write), and it makes your code much more complicated to read. There's something so beautiful about being able to do:
@arr = qw/aaa aba abb bac efg/;
tr/a/x/ for @arr;
print join ' ', @arr;
: What's the point of having $_ and @_ if you don't use them? I will agree that any reasonably large sub should define variables for the contents of @_, but it's just so much neater to do a series of regexes on $_ than on a variable. I use it as much as possible.