in reply to Map not giving me what I thought it would.

As the above two mentioned, it is because of the substitution's return value. So, instead of using your way of joining the values, you can just put the whole thing one map with the same functionality and without the extra newline.

my @array = map {s/^-//;$_.="\n"}@ARGV;

Simple stuff, basically just does what you were doing then uses the "$var = $var.stuff" operator (which I love dearly =) to append a newline onto the end of each line.

$TMTOWTDI++;

Tiptoeing up to a Perl hacker.
Dave AKA damian