Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^6: Use a Variable in a Separate Perl Script

by NinjaOne (Initiate)
on Jun 08, 2012 at 16:40 UTC ( [id://975205]=note: print w/replies, xml ) Need Help??


in reply to Re^5: Use a Variable in a Separate Perl Script
in thread Use a Variable in a Separate Perl Script

Again, sorry for not being more clear in my description. You all make very valid points.

The reason I have two Perl scripts, is because they will executed at different times. Some background information through an example:

User executes PerlScript1. This creates a directory with contains a Checklist and a small bash script. The reason the bash script isn't executed yet is because it will execute PerlScript2, which produces a timestamped file that contains updates (only as recent as the timestamp, which is why I delay PerlScript2 by means of the bash script. This way the user can complete and add to the Checklist document and they don't have to worry about executing the second Perl script until they are absoultey ready, so as to ensure they have the most current updates.) When the user is finally ready for the timestamped folder, they can execute the bash script, which will call upon PerlScript2 and execute it, thus creating an updated timestamped folder. PerlScript2 sends out an email notification when it is executed and ultimately needs to use the $final variable from PerlScript1 to populate the email with the correct filename given in PerlScript1.

Hope this helps fill in some of the gaps.

Thanks.

  • Comment on Re^6: Use a Variable in a Separate Perl Script

Replies are listed 'Best First'.
Re^7: Use a Variable in a Separate Perl Script
by rovf (Priest) on Jun 11, 2012 at 14:26 UTC

    Since you are also create the bash script, create it in a way that it will pass on the requested value to PerlScript2 - either as an argument, or via the environment, depending on your taste.

    -- 
    Ronald Fischer <ynnor@mm.st>
Re^7: Use a Variable in a Separate Perl Script
by aaron_baugher (Curate) on Jun 09, 2012 at 01:06 UTC

    In that case, see the answer below by Athanasius, about putting the value in a file. That's probably the simplest way to share a value between two programs that run independently of each other. You could write the value into the bash script directly, so it could pass it to script2.pl, but either way, you're writing the value into a file which can later be accessed in some way by the other script. So to keep it simple:

    # in script1.pl open my $out, '>', '/tmp/myvalue' or die $!; print $out $final; close $out; # in script2.pl open my $in, '<', '/tmp/myvalue' or die $!; my $final = <$in>; close $in;

    There's a potential issue here if you have multiple users possibly running both scripts at the same time. Potentially the value could be half-written at the moment that script2.pl tries to read it. If that's possible in your case, look into file locking or have the storage file in the user's home directory so there won't be a conflict between users.

    Aaron B.
    Available for small or large Perl jobs; see my home node.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2024-04-19 19:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found