foreach (@files) { open FILE, "$_" or die $!; print "$_", br() x3; $_ = map m{([^/]+)\.txt}, $_; #Strip out of the string the path and extension leaving only the filename intact ... } #### ( my $name ) = m{ ([^/]+) \.suffix }x; # or, my $name = ( m{ ([^/]+) \.suffix }x )[0]; # or, use File::Basename; my $name = fileparse( $_ , qr{ \.suffix }x );