Schrift
[thread]1285[/thread]

open problem mit Dateipfad

Leser: 2


<< >> 4 Einträge, 1 Seite
Gast Gast
 2006-08-28 17:40
#11799 #11799
Ich habe folgendes Skript unter windows mit der aktuellen perl version:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl -w

#Wechsel in das aktuelle Verzeichnis
#geht mit oder ohne die zeile net
$0 =~ /^(.*)[\/\\].*/ && chdir ($1);
print "$0";

#Schleife die alle dateien mit gewissen Eigenschaften liest
while (my $filename=<ENG*>)
{
print "DEBUG ich habe $filename gefunden\n";
#Ort der Gefundenen Datei präzisieren
#$filename = ".\\" . $filename;

#Öffnen für Ausgabe:
open(IN, '$filename') or
die "Datei konnte nicht geoeffnet werden: $!\n";
#Erste Zeile lesen
$a1 = <IN>;
$a2 = <IN>;
$a3 = <IN>;
$a4 = <IN>;
print "DEBUG Zeile4: $a4 \n";
#Retunr am Zeilenende entfernen
chop($a4);
#Zeilenanfang entfernen
$a4 = substr($a4,11,34);
#Dateiendung anfügen
$a4 = $a4 . ".step";

#Unbenennen
rename($filename,"$a4");
#Datei wieder schließen
close(IN);
}



Die Datei will er nicht öffnen wenn das skript selbst in die variable $filename die datei ohne pfad rein schreibt. Erst wenn ich die variable $filename von hand mit nem relativen oder absoluten pfad belege dann funktioniert das skript an der stelle. Laut mehreren Dokumentationen in denen ich nachgelesen habe sollte es aber auch ohne Pfadangabe funktionieren. Wenn kein Pfad in $filename steht, wird laut dokumentation im aktuellen verzeichnis nnach der datei gesucht.., das tud er aber anscheinend nicht :-(

Vielen dank für antworten!

lg martin\n\n

<!--EDIT|renee|1156773420-->
renee
 2006-08-28 17:59
#11800 #11800
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach mal aus :
Code: (dl )
 open(IN, '$filename')


das hier:
Code: (dl )
 open(IN, '<',$filename)


Du hast die Variable in einfachen Anführungszeichen. Damit verhinderst Du die Variableninterpolation (Ersetzen des Variablennamens durch den Wert).
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Thorium
 2006-08-28 18:02
#11801 #11801
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du willst vielleicht CPAN:Find::File verwenden.
Du hast die Variable $filename in einfache ticks gepackt. Einfache Ticks werden nicht gequotes (im Gegensatz zu z.B. Python) - das heisst: '$var' eq "\$var".
Richtig wäre also entweder mit doppelten quotes, oder ganz ohne.
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
renee
 2006-08-28 18:04
#11802 #11802
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ach, und bitte gewöhn' Dir use strict; an. Man sollte sich angewöhnen, das zu verwenden. Was das macht, ist in Wiki:diesem Artikel beschrieben.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 4 Einträge, 1 Seite



View all threads created 2006-08-28 17:40.