В Perl я могу открыть дочерний процесс и направить его вывод в вызывающий Perl-скрипт, например:
open(my $cmd, '-|', 'ls') or die $!;
while (<$cmd>) {
print $_;
}
Это печатает файлы в моей рабочей папке, например:
> foo.txt
> bar.txt
> ...
Но я хотел бы сделать то же самое для дочернего процесса, который остается открытым, например, для передачи потока tcpdump
в Perl, я пытаюсь сделать нечто подобное:
open(my $cmd, '-|', 'tcpdump') or die $!;
while (<$cmd>) {
print $_;
}
...но кроме текста запуска tcpdump
, это не ограничивает http-логи.Кажется, это просто зависает.Что дает?