URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7078
[ Назад ]

Исходное сообщение
"exec в Perl"

Отправлено youran , 30-Дек-07 17:12 
Как записать в переменную выполнение команды exec в perl.
Например простенький скрипт

#!/usr/bin/perl
$a=exec("date");

Почему-то при выполнении этого скрипта происходит отображение команды
date, мне-же необходимо содержимое переменной $a отображать в нужном мне месте.


Содержание

Сообщения в этом обсуждении
"exec в Perl"
Отправлено tungus , 30-Дек-07 18:02 
>Как записать в переменную выполнение команды exec в perl.
>Например простенький скрипт
>
>#!/usr/bin/perl
>$a=exec("date");
>
>Почему-то при выполнении этого скрипта происходит отображение команды
>date, мне-же необходимо содержимое переменной $a отображать в нужном мне месте.

open($fh, "date |");
while (<$fh> ) {
...
}
close $fh;


"exec в Perl"
Отправлено Goudini , 31-Дек-07 00:07 
>Как записать в переменную выполнение команды exec в perl.
>Например простенький скрипт
>
>#!/usr/bin/perl
>$a=exec("date");
>
>Почему-то при выполнении этого скрипта происходит отображение команды
>date, мне-же необходимо содержимое переменной $a отображать в нужном мне месте.

#!/usr/bin/perl
$a = `date`;



"exec в Perl"
Отправлено angra , 31-Дек-07 04:24 
Читать perldoc -f exec до полного просветления. Ну хотя бы первую строчку прочтите, там даже выделены три слова "and never returns" и сказано что юзать в вашем случае. Дальше не помешает в man perlop почитать описание qx, чаще однако записываемого в виде обратных кавычек. Ну а как появится свободное время рекомендуется детально проштудировать man perlfunc на тему fork/exec и system для того чтобы иметь четкое понятие как происходит запуск дочерних процессов в юникс системах вообще и в перле в частности.