#!/usr/bin/perl use strict; use warnings; use Data::Dump 'pp'; use File::Basename; #my @files = grep { -f } glob( 'data/*.txt' ); #=code # content of @files my @files = ( "dir/file1_2016-04-05.txt", "dir/file2_2016-04-05.txt", "dir/file3_2016-04-05.txt", "dir/file4_2016-04-05.txt", ); #=cut foreach my $file (@files) { my $filename = basename($file); my ($name,$ymd) = split '_',$filename; doresults( $filename, "account" ) if $filename =~ /^file1.*/ig; doresults( $filename, "process" ) if $filename =~ /^file2.*/ig; doresults( $filename, "numbers" ) if $filename =~ /^file3.*/ig; doresults( $filename, "names" ) if $filename =~ /^file4.*/ig; } sub doresults { my ($filename, $recs ) = @_; print "\n $filename = $recs\n"; }