Hi all,
I am trying to figure out how to use spawn_proc_prog to execute an external 
process and return the output of that process to the calling browser.
I am currently modifying the spawn_proc_prog example from the mod_perl 2 API 
docs. 

My perl script is this:
"package ModPerl::Rules2;
use Apache2::SubProcess ();
use Config;
use constant PERLIO_IS_ENABLED => $Config{useperlio};

sub read_data {
        my ($fh) = @_;
        my $data;
        if (PERLIO_IS_ENABLED || IO::Select->new($fh)->can_read(10)) {
                $data = <$fh>;
        }
        return defined $data ? $data : '';
}
sub handler{
        my $r = shift;
        my $cmd = "ls";
        my $out_fh = $r->spawn_proc_prog($cmd);
        my $output = read_data($out_fh);
        
        print "output from spawn_proc_prog goes between this line:\n";
        print $output . "\n";
        print "and this line\n";
        
        return Apache2::OK;
}
1; # satisfy require()"


When I start Apache, everything starts fine:
"[Thu Jul 22 11:11:47 2010] [notice] Apache/2.2.14 (Unix) mod_ssl/2.2.14 
OpenSSL/0.9.8l DAV/2 mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal 
operations"

When I call the script from my browser, I receive this:
"output from spawn_proc_prog goes between this line:

and this line"

So I know the handler is being called by Apache. And there is nothing new in 
the Apache error log.
It is as if spawn_proc_prog ignores me.

I am working on a Mac workstation 10.6.4 with the default installation of 
Apache and mod_perl

thanks!
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org
For additional commands, e-mail: dev-h...@perl.apache.org

Reply via email to