Решено: Помогите с потоками (Немогу выбрать инфу из потока...)

Модератор: Модераторы разделов

Аватара пользователя
Vem
Сообщения: 59
ОС: Windows XP/Linux Debian

Решено: Помогите с потоками

Сообщение Vem »

Заранее извенясь!!! Вопрос наверное глупы.
Я в коде скрипта запускаю прогу вот теким образом

Код: Выделить всё

system("tdbdump /var/run/pppd2.tdb");

Она сробатывает. А как забрать то что она выдаёт на экран?
Не ругайте сильно. Я впервые работаю с Perl. Киньие в меня ссылкой хотябы.
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Решено: Помогите с потоками

Сообщение Sleeping Daemon »

Vem писал(а):
26.06.2007 10:38
Заранее извенясь!!! Вопрос наверное глупы.
Я в коде скрипта запускаю прогу вот теким образом

Код: Выделить всё

system("tdbdump /var/run/pppd2.tdb");

Она сробатывает. А как забрать то что она выдаёт на экран?
Не ругайте сильно. Я впервые работаю с Perl. Киньие в меня ссылкой хотябы.

$result=system("tdbdump /var/run/pppd2.tdb");
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Решено: Помогите с потоками

Сообщение Sleeping Daemon »

Sleeping Daemon писал(а):
26.06.2007 11:20
Vem писал(а):
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`;
Спасибо сказали:
Аватара пользователя
Vem
Сообщения: 59
ОС: Windows XP/Linux Debian

Re: Решено: Помогите с потоками

Сообщение Vem »

$result=`dbdump /var/run/pppd2.tdb`;

Не помогло переменная пустая.
Дело в том что dbdump это линуксовый пакет для работы с файлами типа *.tdb и работает из под консоли.
После того как запускаеш dbdump /var/run/pppd2.tdb он выдает несколько строк с данными. Мне нужно схавать их построчно. чтобы потом можно было с ними работать.
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Решено: Помогите с потоками

Сообщение Uncle_Theodore »

То есть, скрипт у тебя на Перле? Эх, давненько не брал я в руки перла...
Читай тут:
http://perl.active-venture.com/pod/perlope...-openshell.html

А вот примерчик с командой "ls -l"

Код: Выделить всё

#!/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);
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Решено: Помогите с потоками

Сообщение Sleeping Daemon »

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`
Спасибо сказали:
Аватара пользователя
Vem
Сообщения: 59
ОС: Windows XP/Linux Debian

Re: Решено: Помогите с потоками

Сообщение Vem »

Возможно информация выдаётся на stderr. Тогда нужно так:$result=`dbdump /var/run/pppd2.tdb 2>&1`;


вот что сохраняется в переменную

dbdump /var/run/pppd2.tdb 2>&1
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: Решено: Помогите с потоками

Сообщение vadiml »

вот кусочек из мой программы:

Код: Выделить всё

#!/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 может открывать каналы как обычные файлы, если | сзади, то на чтение, если спереди -- на запись
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
Vem
Сообщения: 59
ОС: Windows XP/Linux Debian

Re: Решено: Помогите с потоками

Сообщение Vem »

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 может открывать каналы как обычные файлы, если | сзади, то на чтение, если спереди -- на запись


Огромнейшее спасибо!!!
Спасибо сказали: