0

Is it possible to have a perl script and a bash script in one file? Like:

#!/bin/perl
print "This is perl";
#exit perl

#!/bin/bash
echo "This is bash"
exit 0

This is probably just a complicated solution to a simple problem. I have a perl script, and at the end of it, I want to make a couple calls that I normal write in the shell.

I tried this but it does not work:

$command = "ps";
system $command;

Any help is appreciated greatly.
- Dano

2
Contributors
3
Replies
4
Views
10 Years
Discussion Span
Last Post by KevinADC
0

I found a solution to my own problem now. =P

This works:

#!/bin/perl
use Shell;
$command = echo("parameters", "go", "here");
print $command; #performs echo
0

I'm not sure if this is a wise way to do this, but it should work:

$ENV{PATH}='/bin/perl:/bin/bash';
open (PS, 'ps |') or die "$!";
print <PS>;
close PS;
0

this does not work because the system() function does not return the output of the process:

$command = "ps";
system $command;

You use backtiks `` or qx// to capture process output:

$output = qx/ps/;
print $output;

But on further review of interprocess communications, perldocs recommends using this safe construct:

open PS, "-|", "ps" or die $!;
print <PS>;
close PS;

or stick with the Shell module

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.