ci-dessous (pas très Perl-ish) CodeComment vérifiez-vous le succès de l'ouverture (fichier) en Perl?
#!/usr/bin/perl
if (! -e "mydir/")
{
print "directory doesn't exist.\n";
}
open (my $fh, ">", "mydir/file.txt");
if ($fh)
{
print "file opened.\n";
print $fh;
print $fh "some text\n" or die "failed to write to file.\n";
close ($fh);
}
else
{
print "failed to open file.\n";
}
produit la sortie comme celle-ci
directory doesn't exist.
file opened.
failed to write to file.
GLOB(0x...some-hex-digits...)
Pourquoi $ fh pas équivalente à faux suite à l'appel ouvert? Comme mydir/ n'existe pas, je m'attendrais à la tentative d'ouvrir le fichier à l'échec.
Je reçois des résultats similaires si le répertoire et le fichier existent, mais le fichier est en lecture seule.
J'ai essayé ceci avec Perl 5.10.1 sur Windows 7 x64, et avec Perl 5.10.0 sur Linux Fedora-11.
Je suppose que mon test de gestion de fichier est incorrect. J'ai essayé de googler ceci sans chance. Je m'attends à quelque chose d'évident, mais tous les conseils ou liens seraient très appréciés.
Merci, Rob.
Conseil supplémentaire: utilisez 'perldoc -f open' pour obtenir de l'aide sur une fonction intégrée Perl. – dolmen