McA got to the heart of the problem already, although I'm not sure if the same solution can be applied with Net::Server. It uses Tie::Handle to capture STDOUT, which obviously wont be respected by any forked process. However, you could use IPC::Run to capture the output instead. The following works:
package NetServer;
use base qw(Net::Server::Fork);
use IPC::Run;
sub SSL_key_file { "key.pem" }
sub SSL_cert_file { "cert.pem" }
sub process_request {
my $command = [ 'echo', '==== System Command Successful' ];
IPC::Run::run($command, '>', sub { print shift });
}
NetServer->run(proto => 'ssleay', port=>12345);
And actually in the simple case, IPC::Run doesn't buy you much over just:
print qx( /usr/bin/echo ==== System Command Successful );
But to be clear, the IPC::Run version is better when executing a long running child, since it will asynchronously capture and forward output. The "qx" version waits until the child completes before forwarding the output.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|