use warnings; use strict; my $inputdir; my %files = Prioritise_requests ($inputdir); for my $fileList (sort keys %files) { print "$files{$file}->[0]\n"; # Lowest priority file print "$files{$file}->[-1]\n"; # Top priority file } sub Prioritise_requests { my ($input_directory, $node) = @_; my %files; my $index = 1; while (1) { last if ! opendir SCAN, "$input_directory$index"; for my $filePath (grep (/^Flat_file.*\.txt$/, readdir (SCAN))) { my ($file) = $filePath =~ m![^\\/]*$!; push @{$files{$file}}, $_; ++$index; } closedir SCAN; } return %files; }