Thread RDW #1 - Rätsel der Woche Nummer eins (112 answers)
Opened by Crian at 2004-07-08 21:52

betterworld
 2004-07-14 20:03
#84041 #84041
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=Ronnie,11.07.2004, 23:41]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

print Dumper walk('./rdw01_testsuit');
exit;

sub walk {
my $here = {};
chdir shift;
$here->{$_} = (-d $_) ? walk($_) : '' for (<*>);
chdir '..';
return $here;
}
[/quote]
Das mit dem .. ist ein wenig problematisch, wenn das Verzeichnis ein Symlink ist. Beispiel:
Code: (dl )
1
2
3
perl -le 'chdir("/usr/doc"); chdir(".."); system("pwd")'
Ausgabe:
/usr/share


(Ergaenzung: das funktioniert natuerlich nur, wenn /usr/doc z.B. ein Symlink auf /usr/share/doc ist, wie z.B. bei Gentoo. Ich glaube, bei Suse ist es anders)

Ich wuerde empfehlen, bei chdir einfach immer den absoluten Pfad anzugeben.\n\n

<!--EDIT|betterworld|1089821370-->
Antworten mit Zitat

View full thread RDW #1 - Rätsel der Woche Nummer eins