in reply to printing all elements of arrays

This part of your code:
while (<FH>) { chomp $_; $a[$i]=$_; $i++; }
Can be rendered in a variety of briefer ways, briefest of which is probably:
@a = <FH>; # diamond operator in "list" (or array) context # will read all input records into array elements chomp @a; # chomp can work on a list
If there are other things you want to do while assigning input records to an array, you can keep the while loop, but without using the array index variable ($i):
while (<FH>) { chomp; # $_ is the default arg to chomp; # ... do other things to $_ if necessary ... push @a, $_; # add a new element at end of @a }
In terms of printing the array elements as a "joined set", you should just play with different things to see how they work -- try a few command lines like this:
perl -e '@a=qw/one two three four/; print @a,$/' perl -e '@a=qw/one two three four/; print "@a$/"' perl -e '@a=qw/one two three four/; print join(" ", map { "foo=$_" } +@a), $/'
R some more FMs and have fun with it.