Thread Rückgabewert von select() (8 answers)
Opened by bianca at 2022-02-08 10:26

haj
 2022-02-08 16:26
#194247 #194247
User since
2015-01-07
521 Artikel
BenutzerIn

user image
Das ganze ist ein bisschen schräg wegen der Doppelfunktion von select. Die -1 als Rückgabewert (und einen Wert in $!) bekommst Du nur von der Aufrufvariante select RBITS,WBITS,EBITS,TIMEOUT. Nur in dieser Variante wird nämlich die C-Funktion select verwendet (und in dem Abschnitt taucht es auch in der Dokumentation auf).

Verblüffenderweise kannst Du in Perl mit select FILEHANDLE ein Handle auch zuerst selektieren und danach aufmachen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#! /usr/bin/env perl
use 5.010;
use strict;
use warnings;
use autodie;

my $fh;
my $old = select($fh);
say 'Ist noch gar nicht offen!'; # say on unopened filehandle $fh
open ($fh,'>','test.txt');
say 'Aber jetzt!';
close $fh;
say 'Und schon wieder zu.';      # say() on closed filehandle $fh


Um herauszufinden, ob ein Filehandle gerade offen ist, nimmst Du Perldoc:perlfunc fileno.

View full thread Rückgabewert von select()