On Dec 18, 2003, at 10:12 PM, Tushar Gokhale wrote:


How do I call another perl script from my current perl script? I'm working
on one perl testing harness, currently my "bin/run.pl" has a control and
now I want to call script files one by one from "tests/" folder. I also
want to pass an argument to the test script file. Once the file is executed
from "tests" folder i want the control to come back to my run.pl file.

there are several ways to try this, my pet favorite gag is

        sub run_cmd
        {
                my ($cmd, $args) = @_;
                return "ERROR: no command" unless $cmd;
                $args ||=''; # so that it is initialized
                open(CMD, "$cmd $args 2>&1")
                        or return "ERROR: problem running $cmd with $args:$!";

                my @response;
                while(<CMD>)
                {
                        next if /^\s*$/; # space empty lines
                        chomp;  # end of line cleaner
                        push(@response, $_);
                }
                close(CMD)
                [EMAIL PROTECTED];
        }

this I could call inside of a loop like say

        opendir(DIR, $test_dir) or die "unable to open $test_dir:$!";
        my @allfiles = grep { $_ !~ /^\./ } readdir(DIR);
        close(DIR)
        foreach my $file (@allfiles)
        {
                next unless ( <execute_condition> );

                my $response = run_cmd($file);
                if ( ref($response) eq 'ARRAY')
                {
                        deal_with_response_array($file, $response)
                } else {
                        print "$file had problem: $response\n";
                }
        }

but personally I like the idea of growing out my test
cases in Perl Modules so that I can dish them up with
cool dispatching solutions....

ciao
drieux

---


-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to