5 Stimmen

Wo in der Dokumentation steht, dass while readdir auf Definiertheit testet?

Siehe auch: Wie ist "0" Ergebnis von readdir nicht falsch in einer while-Bedingung? . ( Es ist kein Duplikat, sondern nur eng verwandt. )


Wo in der Dokumentation steht, dass while readdir auf Definiertheit testet? Zum Beispiel, dieser Code

#!/usr/bin/perl

use strict;
use warnings;

opendir my $dir, "/tmp" or die "$!";

while (my $file = readdir($dir)) {
        print "$file\n";
}
closedir $dir;

im Durchlauf B::Abreise Erträge:

use warnings;
use strict 'refs';
die "$!" unless opendir my $dir, '/tmp';
while (defined(my $file = readdir $dir)) {
    do {
        print "$file\n"
    };
}
z.pl syntax OK

Ich erwarte dieses Verhalten, aber ich kann nicht finden, wo es festgelegt ist. In der Abschnitt E/A-Operatoren von perlop heißt es

Die folgenden Zeilen sind gleichwertig:

     while (defined($_ = <STDIN>)) { print; }
     while ($_ = <STDIN>) { print; }
     while (<STDIN>) { print; }
     for (;<STDIN>;) { print; }
     print while defined($_ = <STDIN>);
     print while ($_ = <STDIN>);
     print while <STDIN>;

Aber es gibt keinen Hinweis auf readdir .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X