No, you can't. But you can do something just as good, use
Storable; more specifically, freeze & thaw. Hm. Except that freeze doesn't create an ASCII only representation of the reference. But you could add
URI::Escape to make it clean:
use strict;
use URI::Escape;
use Storable qw(freeze);
my $hashref={ Foo=>1, Bar =>'string' };
my $frozen=uri_escape(freeze($hashref));
my $output=`otherscript.pl $frozen`;
print $output;
and in your otherscript.pl, do something like:
use strict;
use URI::Escape;
use Storable qw(thaw);
use Data::Dumper;
my $hashref=thaw(uri_unescape(shift @ARGV));
print Dumper $hashref;
Update: Oops, you said "array reference", not "hash reference". Sorry; but the idea should be the same. But a warning, this method is limited entirely by the size of the reference that you are passing. If it's too big, the command-line version of it will probably exceed your OS's limit.
In fact, this method probably isn't a good idea in any circumstances :)
mr.nick ...