Next: sigtrap | Previous: SelfLoader |  | [Table of Contents] | [Index]

# Shell

- NAME
- SYNOPSIS
- DESCRIPTION
  - OBJECT ORIENTED SYNTAX
- AUTHOR

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

     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 conservation
    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.cottle@csc.canterbury.ac.nz>

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

[Top] Generated by Pod::HTML 0.43 on Mon Mar 19 17:36:58 2001