можно анализировать
ls -R
можно
sub get_files_tree {
my ( $base_dir, $mask, @result) = @_;
my $full_mask = \'\';
my $full_dir = \'\';
$full_dir = \'\'.($base_dir);
$full_mask = "$full_dir/$mask";
$full_dir =~ s/\\/{2,}/\\//g;
$full_mask =~ s/\\/{2,}/\\//g;
push @result, $full_dir;
my @files = get_file_list($object, $full_mask);
@result = (@result, @files);
my @dirs = get_dir_list($object, $full_mask);
foreach ( @dirs ) {
my @d = split /\\//, $_;
my $dir = pop @d;
if ( length $dir ) {
my $rd = "$base_dir".\'/\'."$dir";
@result = get_files_tree("$rd", "$mask", @result );
}
}
return @result;
}
sub get_file_list {
my ($full_mask) = @_;
my @result = ();
my @list = glob ( $full_mask );
foreach (@list) {
if (-f $_) {
push @result, $_;
}
}
return @result;
}
sub get_dir_list {
my ($full_mask) = @_;
my @result = ();
my @list = glob ( $full_mask );
foreach (@list) {
if (-d $_) {
push @result, $_;
}
}
return @result;
}
Можно еще по всякому получай список файлов, текущую директорию, анализируй директория или файл, проверяй права и вперед рекурсию, какая проблема