471,853 Members | 1,527 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,853 software developers and data experts.

Running a Perl script from another Perl script

Hi all,

I have two scripts:

1/ parser.pl which parses a text file and stuffs the relevant data into a
mySQL DB - works fine no probs there

2/ importer.pl which I want to run through all the relevant files in a
directory and run them through parser.pl

I've got importer.pl to the stage where it can run through a directory and
select the correct files to be processed, but I'm not sure how to pass each
file over to parser.pl. I also need it to wait until parser.pl has finished
processing a file before it passes it another file to process.

I've read the fantastic Perl Cookbook but sadly it's leaving me more
confused than enlightened on this particular issue. :(

Cheers,

Bob

--


Aug 2 '05 #1
5 17026
Bob MacBob wrote:
select the correct files to be processed, but I'm not sure how to pass each
file over to parser.pl. I also need it to wait until parser.pl has finished
processing a file before it passes it another file to process.


1) Post to comp.lang.perl.misc instead of this group (comp.lang.perl).

2a) Use system() for one file at a time.

system './parser.pl',$_ foreach @files;

2b) Use system() for all files at once (assuming that parser.pl is
written to handle multiple arguments in @ARGV).

system './parser.pl,@files;
-Joe
Aug 2 '05 #2
In article <mJ********************@eclipse.net.uk>, Bob MacBob
<b_******@hotmail.com> wrote:
Hi all,

I have two scripts:

1/ parser.pl which parses a text file and stuffs the relevant data into a
mySQL DB - works fine no probs there

2/ importer.pl which I want to run through all the relevant files in a
directory and run them through parser.pl

I've got importer.pl to the stage where it can run through a directory and
select the correct files to be processed, but I'm not sure how to pass each
file over to parser.pl. I also need it to wait until parser.pl has finished
processing a file before it passes it another file to process.

I've read the fantastic Perl Cookbook but sadly it's leaving me more
confused than enlightened on this particular issue. :(


You should rewrite parser.pl so that it implements a subroutine (better
still a subroutine inside a package) and pass the name of the file to
be processed as an argument to the subroutine, rather than a
command-line argument, which is what you might be doing now. Make sure
there are no global variables shared between parser.pl and importer.pl.
Then, it should be easy to execute 'do "parser.pl"' in importer.pl,
which will make the subroutine(s) in parser.pl available to the
statements in importer.pl.

If you can't get that to work, post some sample programs (not the real
ones, unless they are very short), but post them to comp.lang.perl.misc
(being sure to follow the guidelines for that newsgroup), because this
newsgroup is defunct.

Thanks.

----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Aug 2 '05 #3
Thanks to both Joe and Jim.

I'll give those solutions a go and if I have any more questions, I'll post
on the misc group.

Cheers,

Bob
Aug 3 '05 #4
Thanks to both Joe and Jim.

I'll give those solutions a go and if I have any more questions, I'll post
on the misc group.

Cheers,

Bob

Aug 3 '05 #5
Thanks to both Joe and Jim.

I'll give those solutions a go and if I have any more questions, I'll post
on the misc group.

Cheers,

Bob

Aug 3 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

reply views Thread by Fabio | last post: by
6 posts views Thread by Pierre-Yves | last post: by
10 posts views Thread by shumaker | last post: by
NeoPa
reply views Thread by NeoPa | last post: by
reply views Thread by YellowAndGreen | last post: by
aboka
reply views Thread by aboka | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.