Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: perl / embperl -- IPC::Open3;

by zentara (Cardinal)
on May 17, 2014 at 14:09 UTC ( [id://1086443]=note: print w/replies, xml ) Need Help??


in reply to perl / embperl -- IPC::Open3;

Just looking at your embperl script, and assuming you copy&pasted it properly, it should fail because you have use strict enabled, but have a few variables without scope.
Global symbol "$escmode" requires explicit package name at ./1086395.p +l line 7. Global symbol "%http_headers_out" requires explicit package name at ./ +1086395.pl line 8.

It's conceivable that the cgi is trying to print this error, but it gives your bad filedescriptor error instead. Sometimes error reporting can be deceiving.


I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

Replies are listed 'Best First'.
Re^2: perl / embperl -- IPC::Open3;
by djlerman (Beadle) on May 19, 2014 at 20:22 UTC

    $escmode and %http_headers_out are a part of and used in embperl. I don't think they need to be defined separately.

    Either way I removed them both from the script and I still get the same error

      With the help of user ikegami over at stackoverflow. The following solutions works.

      [- use warnings; use strict; use IPC::Open3; use POSIX; $http_headers_out{'Content-Type'} = "text/plain"; my $cmd = 'ls'; open(my $fh, '>', '/dev/null') or die $!; dup2(fileno($fh), 1) or die $! if fileno($fh) != 1; local *STDOUT; open(STDOUT, '>&=', 1) or die $!; my $pid = open3(*HIS_IN, *HIS_OUT, *HIS_ERR, $cmd); close(HIS_IN); # give end of file to kid, or feed him my @outlines = <HIS_OUT>; # read till EOF my @errlines = <HIS_ERR>; # XXX: block potential if mas +sive print OUT "STDOUT: ", @outlines, "\n"; print OUT "STDERR: ", @errlines, "\n"; waitpid( $pid, 0 ); my $child_exit_status = $? >> 8; print OUT "child_exit_status: $child_exit_status\n"; -]

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1086443]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (6)
As of 2025-06-17 11:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.