sub files_sort { my $first_number; my $second_number; if ($a =~ /(\d+)_(\d+)_duration_(\w+)_comptage_(\d+).txt$/){ $first_number = $1; } if ($b =~ /(\d+)_(\d+)_duration_(\w+)_comptage_(\d+).txt$/){ $second_number = $1; } $first_number <=> $second_number; } #### sub my_sort { parse_file_name($a) <=> parse_file_name($b); } sub parse_file_name { if ($_[0] =~ /(\d+)_\d+_duration_\w+_comptage_\d+.txt$/) { return $1; } else { return 0; } }