[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

[MacPerl-AnyPerl] This Seemed So Simple...



When I run 3 file processing scripts in succession from the command 
line in telnet, all goes as planned. However, I wanted to idiot-proof 
this updating procedure for my client, so I wrote a master script 
that calls the other 3 in the correct order, provides some progress 
output, and, in theory, should yield the same results as the three 
scripts do when they are manually run from the command line in the 
same order. Sadly, this is not the case and I have pasted in the 
script below. I previously figured out that calling external scripts 
with "require" made a mess out of everything, so I thought that 
approaching this with "do" should straighten things out.

In every other language I've worked in, when you call an external, 
nothing else happens until the external has fully executed. I am not 
explicitly checking return values (a default of 1 for each program) 
on the theory that if the external will run by itself, it should run 
when called. They are indeed running, but at least the second one 
(which makes a table of contents from the files that were just 
processed by the first one) is getting part of the way thru, skipping 
stuff, and then apparently claiming to be finished. Again, *all* of 
the external scripts do exactly what they are supposed to do if you 
run them individually.

So, before I lapse into another bout of Perl melancholy, does anyone 
have any suggestions? Oh, yeah, this is running under Solaris and is 
just a bunch of html setup stuff. Thanks.

#!/usr/bin/perl/ -w

$start = time;
my $setup = "comm_setup.pl";
my $toc = "make_toc.pl";
my $tags = "dict_tags.pl";

# Begin program:

select(STDOUT);
print "Updating Internal Tagging\n";
do $setup;

select(STDOUT);
print "Updating Table of Contents Files\n";
do $toc;

select(STDOUT);
print "Updating Dictionary Tags\n";
do $tags;

$stop = time;
$diff = ($stop - $start);

select(STDOUT);

print "All files were processed successfully in ".$diff." seconds\n";

Richard Gordon
--------------------
Gordon Consulting & Design
Database Design/Scripting Languages
mailto:richard@richardgordon.net
http://www.richardgordon.net
770.971.6887 (voice)
770.216.1829 (fax)

==== Want to unsubscribe from this list?
==== Send mail with body "unsubscribe" to macperl-anyperl-request@macperl.org