my @filenames = glob '/tmp/dir1/d1*'; my @files_and_sizes; for my $filename (@filenames) { my $filesize = -s $filename; push @files_and_sizes, [$filename, $filesize]; } use Data::Dumper; # just for demo & debugging print Dumper \@files_and_sizes; # just for demo & debugging @files_and_sizes = sort { $$b[1] <=> $$a[1] } @files_and_sizes; print Dumper \@files_and_sizes; # just for demo & debugging my $var1 = $files_and_sizes[0][0]; print $var1;