[vienna.pm] pipe or die

Peter J . Holzer hjp+dbi at wsr.ac.at
Thu May 4 10:47:40 CDT 2000


On 2000-05-04 15:09:26 +0200, Toni Andjelkovic wrote:
> Johannes Fuernkranz wrote on Thu, May 04 2000 (13:40:18 +0200):
> > open(IN,"non_existent_script |") or die "Script doesn't exist";
> 
> eventuell
> 
>   open(IN, "<foobar |") or die "open: $!\n";
             ^^^^^^^^^^^
Das versucht ein File namens "foobar |" zum Lesen zu öffnen :-)


> oder du machst den check beim ersten read oder write auf
> dieses filehandle.
> 
> der return-code ist deswegen immer ok, weil der prozess
> "non_existent_script" geforkt wird, und der perl-parent
> nur den return-code von fork() kriegt, glaub ich halt.

Stimmt. Den Exit-Code des Scripts (eigentlich der Shell) bekommt er erst
beim Close.

folgendes Script:

#!/usr/bin/perl -w 


open(IN,"./a_script |") or die "open failed: $!";
while (<IN>) {
    print "Script: $_";
}
close(IN) or die "close failed: $!";

stirbt nach dem close, wenn das Script nicht existiert oder  einen
Exit-Code != 0  liefert. Den Exit-Code (*256) kann man mit $? abfragen,
wenn man unterschiedliche Exit-Codes unterschiedlich behandeln will. 

	hp

-- 
   _  | Peter J. Holzer      | ... Desinformation und Gerüchte,
|_|_) | Sysadmin WSR / LUGA  |  im Internet auch "flaming" genannt ...
| |   | hjp at wsr.ac.at        |
__/   | http://www.hjp.at/   |	   -- Telekom-Presse 2000-04-26    
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 371 bytes
Desc: not available
Url : http://mail.pm.org/archives/vienna-pm/attachments/20000504/6bdb9f84/attachment.bin


More information about the Vienna-pm mailing list