Существует ли дескриптор файла/дескриптор для вывода системы, управляют, чтобы я выполнился в Perl?
Вот пример установки каналов между вашим скриптом и другими командами с использованием формы с 3 аргументами open
:
open(my $incoming_pipe, '-|', 'ls -l') or die $!;
open(my $outgoing_pipe, '|-', "grep -v '[02468]'") or die $!;
my @listing = <$incoming_pipe>; # Lines from output of ls -l
print $outgoing_pipe "$_\n" for 1 .. 50; # 1 3 5 7 9 11 ...
Да, вы можете использовать трубу следующим образом:
open(my $pipe, "ls|") or die "Cannot open process: $!";
while (<$pipe>) {
print;
}
См. документацию по open
для дополнительной информации, и perlipc
для полного описания работы трубы.