#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use File::Find; my $dir = shift or die "bitte html suchen/ersetzen verzeichnis eingeben\n"; opendir(DIR, $dir) or die "html suchen/ersetzen verzeichnis existiert nicht: $dir"; closedir(DIR); #works, but with warning: #Variable "@myfiles" will not stay shared at fileFindTroubleshooting.pl line 34. my @files = get_files($dir); foreach (@files) { print "file: $_\n" } sub get_files { my $directory = shift; opendir (DIR, $directory) or die "couldn't open directory: $directory"; my @myfiles; my @directories_to_search = ("$directory"); find( sub { my $name = $File::Find::name; if ( $name =~ /html$/i && ! ( $name =~ /\.backup\.before/i ) ) { $name =~ s|\\|/|; # substitute forward slash for back slashes, icky but don't know a better way. #print "name: $name\n"; push @myfiles, $name; } }, @directories_to_search); return @myfiles; }