in reply to
USe Shell comands in perl
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).
| UNIX | Perl | Origin |
| . | 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 |