I am just putting the code here that might be helpful to others.  Thank you
very much.

Praveen Mall

Program1: (sending hash reference)

use strict;

use warnings;

use Storable;

 my %h = (a => 1, b => 2, c => 3);

 store(\%h, "c:\\perlipc.$$")

   or die "could not store hash in /tmp/perlipc.$$: $!";

 system("perl", "2.pl", $$) == 0

   or die "could not run second.pl";



Program2: (receiving hash reference)

use strict;

use warnings;

use Storable;
my $parentpid = shift;

my $href = retrieve("c:\\perlipc.$parentpid")

   or die "could not retrieve hash from /tmp/perlipc.$parentpid: $!";



my %hash = %$href;



foreach my $key(keys %hash){



            print "$key=$hash{$key}\n";


On Jan 28, 2008 3:00 PM, praveen mall <[EMAIL PROTECTED]> wrote:

> Thanks a lot for helping me. :)
>
>
>
> On Jan 25, 2008 6:50 PM, Nagrale, Ajay <[EMAIL PROTECTED]> wrote:
>
> > Passing hashes between the scripts would be useful using GDBM
> > files..Hashes would be stored internally. You can directly load and change
> > the contents.
> >
> > It's easy to handle. But, gdbm files have their own disadvantages when
> > you keep on adding and deleting the data.
> >
> > Try this out. This might help.
> >
> > ~Ajay
> >
> > -----Original Message-----
> > From: Chas. Owens [mailto:[EMAIL PROTECTED]
> > Sent: Friday, January 25, 2008 6:32 PM
> > To: praveen mall
> > Cc: beginners@perl.org
> > Subject: Re: passing array reference from one perl script to another
> > perl scirpt
> >
> >
> > On Jan 25, 2008 4:45 AM, praveen mall <[EMAIL PROTECTED]> wrote:
> > snip
> > > There are two script. From first script I need to call the second
> > program
> > > and in second program I want to receive the hash. I have complete hash
> > in
> > > first program and calling second program by system call by passing
> > hash
> > > reference as a parameter.
> > snip
> >
> > I believe you are placing constraints on yourself that do not actually
> > exist, but we will work with them for now.  You need some form of
> > IPC*.  The easiest to understand is the simple file method: script one
> > writes a file to disk and script two reads that file.  Now that we
> > know how to get the two scripts talking, we need to know how to
> > transfer a hash along that conduit.  We need to serialize it (turn it
> > into a string that contains all of the information we need).  There
> > are many functions in Perl that can do this for us and which one is
> > best depends on the data structure to be serialized and your other
> > needs.  For now, let's us one that is in Core Perl: Storable**.
> >
> > Here is the first script
> > #!/usr/bin/perl
> >
> > use strict;
> > use warnings;
> > use Storable;
> >
> > my %h = (a => 1, b => 2, c => 3);
> >
> > store(\%h, "/tmp/perlipc.$$")
> >    or die "could not store hash in /tmp/perlipc.$$: $!";
> >
> > system("perl", "second.pl", $$) == 0
> >    or die "could not run second.pl";
> >
> > Here is the second script
> > #!/usr/bin/perl
> >
> > use strict;
> > use warnings;
> > use Storable;
> > use Data::Dumper;
> >
> > my $parentpid = shift;
> > my $href = retrieve("/tmp/perlipc.$parentpid")
> >    or die "could not retrieve hash from /tmp/perlipc.$parentpid: $!";
> >
> > print Dumper($href);
> >
> >
> > * inter process communication
> > ** http://perldoc.perl.org/Storable.html
> >
> > --
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > http://learn.perl.org/
> >
> >
> >
>
>
> --
> Thanks and Regards,
> Praveen Kumar Mall
> Jr. SQA Engineer
> Pune
> Mo. No. 09850982204
>



-- 
Thanks and Regards,
Praveen Kumar Mall
Jr. SQA Engineer
Pune
Mo. No. 09850982204

Reply via email to