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] Ignorere stdin hvis intet er angivet.



Hej.

Google og du skal finde...

> Jeg har et script, som skal tage standard input - hvis der er noget, men
> ellers ignorere det.
>
> Hurtigt eksempel:
>
> test.pl:
> #!/usr/bin/perl
> #
> while (<>) {
> 	print;
> }


Jeg har stadig ikke helt fundet ud af hvad det betyder, men følgende, som
er fundet på comp.lang.perl.misc og næsten råt genbrugt, gør hvad jeg
ønsker. Jeg må dog indrømme at jeg er lidt usikker på om jeg har fået
ødelagt noget med hensyn til STDOUT...

test2.pl:
#!/usr/bin/perl
#
$rin = $rout = '';
vec($rin, fileno(STDIN), 1) = 1;
$readable = select($rout=$rin, undef, undef, 0) | -f $ARGV[0];
if ($readable) {
	while (<>) {
		print;
	}
} else {
	printf("No standard input detected\n");
}


Som sagt, så er jeg lidt usikker på hvad der sker med "vec" og "select"...

Med venlig hilsen
Bjørn Bille Højte
sslug@sslug



 
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 .