use File::Find; my $dir = Cwd::getcwd(); find(\&wanted,$dir); sub wanted { if ($_ != /\.ktf$/) { print "$File::Find::name"; open (GPXDATA, "$File::Find::name") || die("Could not open file! $File::Find::name"); my(@raw_data)=; open (MYFILE, '>>D:\mergedfile.ktf'); for (@raw_data) { print MYFILE m"(%,0,.+)"mgs } close (MYFILE); } }