in reply to Reading a array

I will be executing the script with $ARGV[1] as the array name

Maybe I read this wrong, but are you attemping to use $ARGV[1] as the name of an array variable?
Because with use strict; you will get
$ gash.pl dummy jim Global symbol "@arr1" requires explicit package name

Methinks you need eval for that, so, with trepidation:
use strict; use warnings; our @fred = qw(The quick brown camel); our @jim = qw(Fee Fie Foe Fum); sub validate_tag { my $arr1; my $cmd = "\$arr1 = \\\@$ARGV[1]"; eval $cmd; print "$arr1->[0]\n"; } validate_tag(); # end of script $ gash.pl dummy jim Fee
With trepidation because there is (almost) always a better way of doing it than eval.