SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Förstasida   Anmälning   Postarkiv   Forum   Kalender   Sök
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

Re: [PERL] 2 gange stdin/stdout



Jeppe Koefoed <sslug@sslug> wrote:
> $pid = &open2 ("OUTPUT","INPUT","/usr/local/bin/auth-program");
[...]
>  $result=<OUTPUT>;
>  print $result;

Du har problemer pga buffering af 'retur-kanalen' (auth-program's stdout).
Den kan du slippe omkring ved at forbinde auth-program's stdout direkte til
din egen stdout (virker naturligvis kun fordi du ikke skal ind og pille i
retur-strengen).

Og iøvrigt er det lidt pænere at bruge "while (<>) { ... }" istedet for "do
{ $_=STDIN; ... } while (1)", så du kan ^D'e dig ud når du er færdig. Og så
bør du bruge $_ som den 'default variabel' den er.

Alt ialt:

--cut--
#!/usr/local/bin/perl -w
use strict;
use IPC::Open2;

my $pid = open2('>&STDOUT', 'INPUT', '/usr/local/bin/auth-program');

while (<>) {
  s/:/ /;
  print INPUT;
}

close INPUT;
--cut--

/Lars



 
Förstasida   Anmälning   Postarkiv   Översikt   Kalender   Sök

 
 
Fel och synpunkter angående webb-sidorna skickas till <www_admin>. Senaste ändring 2005-08-10, klockan 19:55
Denna sidan underholds av MHonArc .