SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
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



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:55
Denne side vedligeholdes af MHonArc .