Thread relative Pfadangaben in Perlscripten ermöglichen, aber WO? (8 answers)
Opened by Wolfgang_muc at 2010-05-29 11:21

pktm
 2010-05-29 13:38
#137744 #137744
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Du kannst ausgehend von deinem Skript die Dateien relativ ansprechen.
Wenn die Datei im selben Vereichnis liegt wie dein Skript, dann kannst du tatsächlich sowas wie open(FILE, "datei.txt") or die($!); verwenden.

Edit: (s. Beitrag von pq): das stimmt nicht immer. Nimm einfach CPAN:FindBin :)

Hier ein paar Beispiele:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
# selbes Verzeichnis
open(FILE, "datei.txt") or die($!);
# oder:
open(FILE, "./datei.txt") or die($!);

# eins drüber:
open(FILE, "./../datei.txt") or die($!);

# eins drunter in Ordner "files"
open(FILE, "files/datei.txt") or die($!);
# oder:
open(FILE, "./files/datei.txt") or die($!);


Der Punkt am Anfang (.) ist das aktuelle Verzeichnis.

Ich benutze auch gerne FindBin, um vollständige Pfade zu verwenden (ungetestet):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/Perl/bin/perl

use strict;
use warnings;
use FindBin qw/$Bin/;
use FileHandle;

print "i'm in $Bin reading file $Bin/file.txt\n";

my $file = $Bin . '/file.txt';
my $fh = FileHandle->new($file, "<:encoding(UTF-8)") or die("Dannot open file: $!");

while( my $line = $fh->getline() ) {

print $line;

}

$fh->close();


hth, Alex
Last edited: 2010-05-29 14:26:13 +0200 (CEST)
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread relative Pfadangaben in Perlscripten ermöglichen, aber WO?