Я в коде скрипта запускаю прогу вот теким образом
Код: Выделить всё
system("tdbdump /var/run/pppd2.tdb");Она сробатывает. А как забрать то что она выдаёт на экран?
Не ругайте сильно. Я впервые работаю с Perl. Киньие в меня ссылкой хотябы.
Модератор: Модераторы разделов
Код: Выделить всё
system("tdbdump /var/run/pppd2.tdb");Vem писал(а): ↑26.06.2007 10:38Заранее извенясь!!! Вопрос наверное глупы.
Я в коде скрипта запускаю прогу вот теким образом
Код: Выделить всё
system("tdbdump /var/run/pppd2.tdb");
Она сробатывает. А как забрать то что она выдаёт на экран?
Не ругайте сильно. Я впервые работаю с Perl. Киньие в меня ссылкой хотябы.
Sleeping Daemon писал(а): ↑26.06.2007 11:20Vem писал(а): ↑26.06.2007 10:38Заранее извенясь!!! Вопрос наверное глупы.
Я в коде скрипта запускаю прогу вот теким образом
Код: Выделить всё
system("tdbdump /var/run/pppd2.tdb");
Она сробатывает. А как забрать то что она выдаёт на экран?
Не ругайте сильно. Я впервые работаю с Perl. Киньие в меня ссылкой хотябы.
$result=system("tdbdump /var/run/pppd2.tdb");
$result=`dbdump /var/run/pppd2.tdb`;
Код: Выделить всё
#!/usr/bin/perl
$i=0;
open(LS, "ls -l |") || die "can't run ls -l $!";
while (<LS>)
{
print "Line $i: ";
print $_;
$i++;
print "\n";
};
close(LS);Vem писал(а): ↑28.06.2007 04:12$result=`dbdump /var/run/pppd2.tdb`;
Не помогло переменная пустая.
Дело в том что dbdump это линуксовый пакет для работы с файлами типа *.tdb и работает из под консоли.
После того как запускаеш dbdump /var/run/pppd2.tdb он выдает несколько строк с данными. Мне нужно схавать их построчно. чтобы потом можно было с ними работать.
Возможно информация выдаётся на stderr. Тогда нужно так:$result=`dbdump /var/run/pppd2.tdb 2>&1`;
Код: Выделить всё
#!/usr/bin/perl -w
open F,"xwininfo -root -children |";
my %l;
while(<F>){
if( /\"(\w+)\"\)/ ){
$l{$1}=0
}
}
close F;
for(sort keys %l){
print "$_\n"
}vadiml писал(а): ↑29.06.2007 18:34вот кусочек из мой программы:
Код: Выделить всё
#!/usr/bin/perl -w open F,"xwininfo -root -children |"; my %l; while(<F>){ if( /\"(\w+)\"\)/ ){ $l{$1}=0 } } close F; for(sort keys %l){ print "$_\n" }
т.е.
получает резутьтат из "xwininfo -root -children"
выбирает что надо в хеш
сортирует
отправляет далее
perl может открывать каналы как обычные файлы, если | сзади, то на чтение, если спереди -- на запись