Leser: 21
1 2 3 4 5 6
chdir '/srv/www/vhosts/domain/httpdocs/' or die "Can't chdir to documentroot: $!"; open my $h, '<', 'file_with_relative_path' or die $!; ...
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($!);
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();
2010-05-29T11:38:20 pktmWenn die Datei im selben Vereichnis liegt wie dein Skript, dann kannst du tatsächlich sowas wie open(FILE, "datei.txt") or die($!); verwenden.
1
2
$ cd /tmp # /tmp ist aktuelles verzeichnis, "cwd"
$ perl /home/user/bla.pl # verzeichnis des scripts ist /home/user
1
2
3
4
5
6
7
8
9
10
11
12
$ cd /tmp
$ cat ~/foo.pl
#!/usr/bin/perl5.10
use strict;
use warnings;
open my $fh, "./datei.txt" or die "Konnte datei.txt nicht öffnen: $!";
$ cat ~/datei.txt
datei!
$ perl ~/foo.pl
Konnte datei.txt nicht öffnen: Datei oder Verzeichnis nicht gefunden at ~/foo.pl line 5.
1
2
3
4
5
6
7
8
#!/Perl/bin/perl
use strict;
use warnings;
use FindBin qw/$Bin/;
open my $fh, "$Bin/datei.txt" or die "Konnte datei.txt nicht öffnen: $!";
print "hurra!";
QuoteC:\Users\root>perl c:/Apache/cgi-bin/test/dir.pl
hurra!
C:\Users\root>
1 2 3 4
my $inifile = $r->dir_config->get('inifile'); # und in der httpd config: # PerlSetVar inifile /path/to/foo.ini