#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; my $file = 'bigfile.txt'; my @files = File::Find::Rule ->file() ->name( qr/^\d+-$file\Z/) ->in( '.' ) ; open OUT, '>', "new_$file" or die $!; for (sort @files) { open IN, $_; print OUT while ; }