Perl Readline auf geschlossene filehandle - Datei nicht vorhanden-Fehler

Arbeite ich an einem einfachen perl-Programm für meine erste Aufgabe in meiner Programmierung Klasse. Ich habe buchstäblich fest gewesen, an diesem ersten Teil für mehr als einen Tag. Ich kann nicht mein Programm, öffnen Sie einfach eine text-Datei im gleichen Verzeichnis wie das Programm.

#!/usr/bin/perl -w
use strict;

my($fileName, $line);

print "Please enter name of file to be opened: ", "\n";
$fileName = <STDIN>;
chop($fileName);

#Associates FILE filehandle with the file: "filename.txt"
open(FILE, $fileName) or die("Can't open '$fileName': $!");

while(my $line = <FILE>){
    print $line;
}

Ich bin mit strawberry perl. Um das Programm auszuführen, ich bin Drag and Drop das Programm in der Befehlszeile, um die Adresse des Programms. Es versucht dann, um es auszuführen.

Es gab zunächst mir ein "readline" auf " closed filehandle Fehler, und dann habe ich das oder sterben("Kann nicht öffnen '$fileName': $!"); Teil des Codes.

Nun heißt es, dass es keine solche Datei in dem Verzeichnis, aber ich weiß, dass die test.txt Datei ist da, weil ich gerade erst erstellt.

Bild von der code-Ergebnisse: http://imgur.com/R8s7FFE

Datei-Verzeichnis, das zeigt Standorte von meinen Dateien: http://imgur.com/nUfM4lA)

  • Verwenden chomp statt chop.
  • Sind Sie sicher, dass Sie in das richtige Verzeichnis? use Cwd; print getcwd(), "\n"; (Oder geben Sie einfach echo %cd% | oder dir | wie Ihr mit dem Namen, aber Sie sollten wirklich die drei-argument-form open() mit einem expliziten MODUS zu verhindern, dass diese Art von trick.)
InformationsquelleAutor Jared | 2013-11-17
Schreibe einen Kommentar