Manpages

Manpage of Shell

Shell

Section: Perl Programmers Reference Guide (3perl)
Updated: 2001-02-22
Index
Return to Main Contents
 

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", "/etc/passwd.orig");


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>


 

Index

NAME
SYNOPSIS
DESCRIPTION
OBJECT ORIENTED SYNTAX
AUTHOR

This document was created by man2html, using the manual pages.
Time: 10:17:53 GMT, May 04, 2024