Если ваш существующий сценарий выводит свои выходные данные на консоль (STDOUT
), вы можете просто перенаправить его, используя netcat (см. nc(1)
):
На сервере:
server-host:~$ nc -l -p 3232 > file.txt
На клиенте:
client-host~$ perl -e 'printf( "Hello %s\n", "world" )' | nc server-host 3232
Выбор, если порт (3232), конечно, произвольный, но в Unix он должен быть больше 1024, чтобы вы могли связать его без привилегий root.
Edit:
Как насчет этого:
#!/usr/bin/env perl
use strict;
my $usage = "Usage: $0 <host:port> <prog>\n";
my $hp = shift @ARGV or die "$usage";
my $prg = shift @ARGV or die "$usage";
my ($host,$port) = split ":", $hp;
defined $host or die "$usage";
defined $port or die "$usage";
exec "$prg @ARGV | nc $host $port" or die "can't execute $prg\n";