sub work_n_save { ... ## whatever my $filename = $File::Find::name if !-d; ## get file name if not directory $filename = basename($filename); ## get the file base name ## The line below assumes, files have extention $filename =~ s/\..+$//; ## remove the file extention open my $fh_new, '>', $filename . "_Result" or croak "can't open file: $!"; open my $fh, '<', $_ or croak "can't open file: $!"; while ( defined( my $line = <$fh> ) ) { chomp $line; ## do whatever you want print {$fh_new} $line, $/; } }