Thread Problem opendir (5 answers)
Opened by Gast at 2006-01-11 17:52

Strat
 2006-01-11 18:40
#61669 #61669
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
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
#! /usr/bin/perl
# so sollte jedes perl script beginnen; hilft ungemein bei der fehlersuche
use warnings;
use strict;

# Dateinamen immer in einer Variable speichern, dann kann man die in
# fehlermeldungen recyclen
my $file = "pfade.txt";

# bei einem open immer Fehler abfangen:
open (DATEI, "<", $file) or die "Error in opening '$file': $!\n";

# dateiinhalt kann man gleich in ein array einlesen
my @patharray = <DATEI>;

# am ende des arrays stehen jedoch noch zeilenumbrueche; das duerfte
# wohl dein problem sein
chomp(@patharray);

close(DATEI);

# wenn du den schleifenindex nicht benutzt, warum dann einen verwenden?
# falls doch, finde ich for my $i (0..$#patharray) { besser lesbar
for my $dir (@patharray) {

# als file/dirhandles immer grossbuchstaben verwenden ist sicherer und
# wird auch von warnings nicht angemeckert
opendir (INVERZ, $dir) or die "Verzeichnis '$dir' nicht gefunden: $!\n";
# ....
closedir(INVERZ);

und @patharray[$i] ist ein arrayslice, d.h. eine liste, die aus einem Element besteht. warnings wuerde da rummotzen, also besser $patharray[$i] verwenden. In deinem Beispiel wuerde es sich allerdings zufaelligerweise gleich verhalten, aber manchmal kann das ein ganz schoener unterschied sein und schwierig zu findenden fehler verursachen, naemlich dann, wenn es auf den kontext ankommt
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Problem opendir