http://www.perlmonks.org?node_id=633161


in reply to Need help with Apache2::Subprocess undefined value error when using spawn_proc_prog

Assuming you are running under Apache::Registry? Then the correct way to obtain the request object is my $r = Apache->request and not my $r = shift.
  • Comment on Re: Need help with Apache2::Subprocess undefined value error when using spawn_proc_prog
  • Select or Download Code

Replies are listed 'Best First'.
Re^2: Need help with Apache2::Subprocess undefined value error when using spawn_proc_prog
by perrin (Chancellor) on Aug 17, 2007 at 15:55 UTC
    No, this should work. The Apache::RequestRec object is supposed to be passed to the sub generated by ModPerl::Registry.

      I reinstalled with Apache2.2.4 and mod_perl 2.0.3 and I am getting the code to work now. I will post an update later tonight with a working example.

        This is what I used after re-installing apache and mod_perl.
        ## I included the following ## use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::RequestUtil (); use Apache2::SubProcess (); ## ## I used this option as well .. .. my $r = shift; $r->no_cache(1); .. .. ## And then the following my $par_value="test"; my @argv; push (@argv, $par_value); my $cmdfile = "/tmp/test.pl"; $r->spawn_proc_prog($cmdfile, \@argv); .. ..
        The above is now working fine.
Re^2: Need help with Apache2::Subprocess undefined value error when using spawn_proc_prog
by aels (Initiate) on Aug 16, 2007 at 20:46 UTC

    The code need to run under mod_perl 2 and apache 2.2.
    The specified web page will have connections to Oracle and PostgreSQL to get information, then using a form you will select information and the submit will execute an os executable to perform certain tasks depending on selection. A similar web page use to run perfect under apache 1.3 and mod_perl 1 using "system($command)" to run the os command, but when doing this via the later versions the web browser hangs, but the command is executed fine. The command is executed but the web pages is waiting for it. The command executes in under 3 seconds. After doing some research a came accross the Apache2::SubProcess, which should allow me to execute the command and the web page should be able to then function as normal and not hang. After the command is executed the page will display the command output (reading a file and printing it to screen).

    The versions of software we use is:
    Apache/2.2.0 (Unix) mod_perl/2.0.2 Perl/v5.8.5, running on RHES 4.
      That all makes sense. Nonetheless I am fairly sure my earlier reply addresses the initial question you raised about that undefined reference error.
      I don't see any reason why system() should not work under mod_perl 2. I also think your use of $r in this code should work. Can you verify that this code is running through mod_perl by checking $ENV{MOD_PERL} within the script?