Vielleicht ist es so etwas verstaendlicher wie das Bsp. mit der Rekursion funktioniert:
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
#!/usr/bin/perl
use strict;
use warnings;
my $path = '/dir/dir1.3/dir1.3.1/dir1.3.1.3/file1.3.1.3.1';
process_path($path);
sub process_path {
my $path = shift; # Pfad
my $indent = shift || 0; # Einrueckungs-Anzahl
$path =~ s:^[\/\\]::; # entf. fuehrenden (Back-)Slash
my($super, $sub) = split /[\/\\]/, $path, 2; # aufteilen in oberen Ordner und Pfadrest
print ' ' x $indent, "$super\n";
if($sub) { # wenn es Pfadrest gibt
process_path($sub, ++$indent); # ruf mich erneut mit Pfadrest auf
return;
print ' ' x $indent, "$sub\n";
}
}
,,Das perlt aber heute wieder...'' -- Dittsche