in reply to Missing array values after sub routine?

I echo what others have said about @_, but wanted to add a mention of using array references. Arrayrefs probably aren't necessary for this particular application, but in larger settings, or if you want to pass multiple arrays or hashes, you could do something like this:
&viewThumbnails(\@array1, \@array2); # and then your subroutine looks like: sub viewThumbnails { my ($firstset, $secondset) = @_; # do something with these arrayrefs }
Also, TMTOWTDI, but I almost never refer to elements of @_ by array index - I find it's easier to read something like
my ($zero, $one, $two) = @_;
than something like:
my $zero = @_[0]; my $one = @_[1]; my $two = @_[2];
Also, if I know I only want the first element of @_, I tend to use shift, like so:
my $firstarg = shift;
...but only because I find it easier to read than explicitly using @_ for just one value. (Apologies if this is way more info than you were looking for; I'm just brainstorming a bit after a long day of looking at others' code.)