Быстрый вопрос,Perl - команда Pipe в другую
Есть ли способ передать команду в другую команду через perl, как вы можете, в командной строке * Nix?
Например:
free -m | grep Mem
Как я смог бы сделать "трубы" в Perl?
Быстрый вопрос,Perl - команда Pipe в другую
Есть ли способ передать команду в другую команду через perl, как вы можете, в командной строке * Nix?
Например:
free -m | grep Mem
Как я смог бы сделать "трубы" в Perl?
Вы можете вызвать команду именно так:
system("free -m | grep Mem");
От documentation:
Если есть только один скалярный аргумент, аргумент проверяется на наличие метасимволов, и если есть любой, весь аргумент передается в командную оболочку системы для синтаксического анализа (это/bin/sh -c на платформах Unix, но зависит от других платформ). Если в аргументе нет метасимволов оболочки, он разбивается на слова и передается непосредственно в execvp, что является более эффективным.
Вы можете сделать то же самое с другими методами для вызова внешних команд, как open
:
open my $fh, "-|", "free -m | grep Mem" or croak "failed to run pipeline";
# and now read from $fh as usual
Лучше использовать три аргумента открытым: `открыть свой $ Ф.Х.,«- |»,«бесплатно -m | grep Mem "или croak" Не удалось запустить конвейер ";`? – 2010-11-30 21:56:07