Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Can I pass a reference between two scripts?

by mr.nick (Chaplain)
on Jun 28, 2001 at 01:43 UTC ( [id://92076]=note: print w/replies, xml ) Need Help??


in reply to Can I pass a reference between two scripts?

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 ...

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://92076]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (5)
As of 2024-03-28 16:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found