opendir(DIR, $dir) or die "$!\n"; while ( defined( my $txtFile = readdir DIR ) ) { next if( $txtFile !~ /.txt$/ ); $cnt++; local $/; open my $fh, '<', $txtFile or die $!, $/; my $data = <$fh>; my ($channel) = $data =~ /A\|CHNL_ID\|(\d+)/i; close($fh); move ($txtFile, "$outDir/$channel") or die $!, $/; } closedir(DIR);