


Shell(3p)        Perl Programmers Reference Guide       Shell(3p)


NAME
       Shell - run shell commands transparently within perl

SYNOPSIS
       See below.

DESCRIPTION
         Date: Thu, 22 Sep 94 16:18:16 -0700
         Message-Id: <9409222318.AA17072@scalpel.netlabs.com>
         To: perl5-porters@isu.edu
         From: Larry Wall <lwall@scalpel.netlabs.com>
         Subject: a new module I just wrote

       Here's one that'll whack your mind a little out.

           #!/usr/bin/perl

           use 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.

        Jenda

       There 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:




2001-05-24                 perl v5.6.1                          1





Shell(3p)        Perl Programmers Reference Guide       Shell(3p)


        cat '</etc/passwd'
        ls '*.pl'

       instead of:

         cat </etc/passwd
         ls *.pl

       and of course, this is wrong.

       I have fixed this bug, it was brought up by Wolfgang Laun
       [ID 20000326.008]

       Casey

       OBJECT ORIENTED SYNTAX

       Shell now has an OO interface.  Good for namespace conser-
       vation and shell representation.

        use Shell;
        my $sh = Shell->new;
        print $sh->ls;

       Casey

AUTHOR
       Larry Wall

       Changes by Jenda@Krynicky.cz and Dave Cottle <d.cot-
       tle@csc.canterbury.ac.nz>

       Changes and bug fixes by Casey Tweten <crt@kiski.net>
























2001-05-24                 perl v5.6.1                          2


