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
stattchop
. - Sind Sie sicher, dass Sie in das richtige Verzeichnis?
use Cwd; print getcwd(), "\n";
(Oder geben Sie einfachecho %cd% |
oderdir |
wie Ihr mit dem Namen, aber Sie sollten wirklich die drei-argument-formopen()
mit einem expliziten MODUS zu verhindern, dass diese Art von trick.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Eingabeaufforderung zeigt
C:\Users\jacjar\Documents
als das aktuelle ArbeitsverzeichnisSo ist dies, wo das Programm suchen
test.txt
Aber es ist nicht in diesem Verzeichnis
text.txt
ist inL:\College\Junior Year\1st Semester\COSC 320 (Programming Languages)
Bewegen Sie Ihre
test.txt
Datei in den C: Pfad oben gezeigt wird, und es wird funktionierenTun Sie merken, Sie versuchen, öffnen Sie
C:\User\jacjar\Documents\test.txt
?