You still don't tell us what you see and how your script fails. "Not getting output" can mean various things. Do you see an 500 error? Do you get another error page? Does the request return a blank page? Does the request never return or time out?
What steps did you undertake to adress the points I mentioned in my first reply?
Now, if you tell us how it's not working, what the error message is, and what you find in the webserver error log, we can maybe help you better.
Be aware that your webserver likely runs your CGI not as your shell user and hence will not have the same permissions as your shell user. Especially, your ~/.ssh2/ directory may or may not be readable to that user, so your passwordless keys for the remote machine won't work.
You don't seem to be checking whether your call to open succeeds. I recommend that you rewrite it as:
my $commandline = "ssh $USER\@$HOST /bin/ping -s $nodeName 64 10 |"; open PING, $commandline or die "Couldn't launch '$commandline': $!/$?";
As another aside, you want to ditch your hand-rolled CGI parser and use CGI instead, which comes with every Perl and has been thoroughly tested.
In reply to Re^5: Shell to Perl conversion
by Corion
in thread Shell to Perl conversion
by rockmountain
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |