Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

USe Shell comands in perl

by pulkitkaul
on Jul 17, 2007 at 04:27 UTC ( #626960=perlquestion: print w/replies, xml ) Need Help??
pulkitkaul has asked for the wisdom of the Perl Monks concerning the following question:

How we use shell commands in perl

Replies are listed 'Best First'.
Re: USe Shell comands in perl
by cdarke (Prior) on Jul 17, 2007 at 09:23 UTC
    While there are some occasions that using shell commands from Perl are justified, there are many more when they are not. Decide: use the shell OR use Perl. Mixing them is to encourage inefficiency.
    This is a rough conversion table from UNIX commands to Perl. Please note that there are not always direct single equivalents, and that there are certainly many more that I can't think of (but many others will).
    . do built-in
    awk perl ;-) (often 'split') built-in
    basename File::Basename::basename Base module
    cat while(<>){print} built-in
    ExtUtils::Command::cat Base module
    cd chdir built-in
    chmod chmod built-in
    chown chown built-in
    cp File::Copy Base module
    ExtUtils::Command::cp Base module
    date localtime built-in
    POSIX::strftime Base module
    declare see typedef
    df Filesys::Df CPAN
    diff File::Compare Base module
    dirname File::Basename::dirname Base modules
    echo print built-in
    egrep while(<>){print if /re/} built-in
    eval eval built-in
    exec exec built-in
    pipe (co-processes) built-in
    open (file descriptors) built-in
    export Assign to %ENV Hash variable
    Env::C CPAN
    find File::Find Base module
    ftp Net::Ftp Base module
    function sub built-in
    grep see egrep
    integer int built-in
    kill kill built-in
    ln -s link built-in
    ls glob built-in
    opendir/readdir/closedir built-in
    stat/lstat built-in
    mkdir mkdir built-in
    mkpath ExtUtils::Command::mkpath Base module
    mv rename built-in
    ExtUtils::Command::mv Base module
    od ord built-in
    printf built-in
    print print built-in
    printf printf built-in
    rand rand built-in
    rm unlink built-in
    ExtUtils::Command::rm Base module
    rm f ExtUtils::Command::rm_rf Base module
    sed s/// (usually) built-in
    select Shell::POSIX::select CPAN
    sleep sleep built-in
    alarm built-in
    sort sort built-in
    source do built-in
    tail File::Tail CPAN
    times times built-in
    touch open()/close() built-in
    ExtUtils::Command::touch Base module
    trap %SIG Hash
    sigtrap pragma
    typeset my built-in
    typeset i int built-in
    typeset l lc built-in
    typeset u uc built-in
    typeset -Z sprintf built-in

      cdarke++, excellent article! Really this reply of mine may have been a /msg, but I wanted others to read it, and see if they share my feeling: have you considered (possibly expanding on the subject and) making it into a meditation? So one could refer to it for the future...

        Thanks blazar. Added to meditations as you suggested 627015. I suggest that monks wishing to add more to the list do so in the meditation.
      I agree with blazar... excellent.

      What about adding?

      telnet Net::Telnet CPAN


      I think you need an "Origin" column for the UNIX side as well, since you seem to have thrown in external utilities, shell built-ins, and C library functions without distinction. (This is mainly meant as feedback for your other post.)

        I can see why you say that, it is this phrase "UNIX command" that is so commonly used but is really too general. Strictly I guess it should only contain names from the POSIX/SUS standard section "Shell&Utilities", but that would miss many out. I will try and apply a new column when I can.
Re: USe Shell comands in perl
by Zaxo (Archbishop) on Jul 17, 2007 at 04:35 UTC

    You can use qx (ie. `backticks`), system, open, or exec, depending on what you want to accomplish. Those links will get you started, and we'll be glad to help if you ask a more specific question.

    After Compline,

Re: USe Shell comands in perl
by GrandFather (Sage) on Jul 17, 2007 at 04:35 UTC
Re: USe Shell comands in perl
by jesuashok (Curate) on Jul 17, 2007 at 06:02 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://626960]
Approved by GrandFather
[Corion]: Meh. My bank removed (part of) their CSV download facilities. Now I will either have to implement a full scraper or automate the download using the HBCI interface instead (or just get a new account elsewhere...)
[Corion]: On the upside, I spend a lot of time thinking this weekend about how to actually implement rate limiting for futures, and if things work out, maybe even loading a configuration from an external file makes sense
[Corion]: I've also found some interesting invariants that I have to think/write about more. A simple rate limiter will never change the order of the input, while a limiter that allows for parallel execution will change the order. But my API currently allows for bo

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (9)
As of 2017-10-23 08:19 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (277 votes). Check out past polls.