Shell - run shell commands transparently within perl
See below.
Date: Thu, 22 Sep 94 16:18:16 -0700Message-Id: <9409222318.AA17072@scalpel.netlabs.com>To: perl5-porters@isu.eduFrom: Larry Wall <lwall@scalpel.netlabs.com>Subject: a new module I just wroteHere's one that'll whack your mind a little out.
#!/usr/bin/perluse Shell;$foo = echo("howdy", "<funny>", "world");print $foo;$passwd = cat("</etc/passwd");print $passwd;sub ps;print ps -ww;cp("/etc/passwd", "/tmp/passwd");That's maybe too gonzo. It actually exports an AUTOLOAD to the current package (and uncovered a bug in Beta 3, by the way). Maybe the usual usage should be
use Shell qw(echo cat ps cp);Larry
If you set $Shell::capture_stderr to 1, the module will attempt to capture the STDERR of the process as well.
The module now should work on Win32.
JendaThere seemed to be a problem where all arguments to a shell command were quoted before being executed. As in the following example:
cat('</etc/passwd');ls('*.pl');really turned into:
cat '</etc/passwd'ls '*.pl'instead of:
cat </etc/passwdls *.pland of course, this is wrong.
I have fixed this bug, it was brought up by Wolfgang Laun [ID 20000326.008]
Casey
Shell now has an OO interface. Good for namespace conservation and shell representation.
use Shell;my $sh = Shell->new;print $sh->ls;Casey
Larry Wall
Changes by Jenda@Krynicky.cz and Dave Cottle <d.cottle@csc.canterbury.ac.nz>
Changes and bug fixes by Casey Tweten <crt@kiski.net>
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.