#!/usr/bin/perl -w use strict; use Data::Dumper; use Sort::Key::Multi qw(iikeysort); chomp( my @s = ); my @is = iikeysort { /\A .+ _ (\d+) _ (\d+) .+ txt \z/msx; } @s; print Dumper \@is; __DATA__ M3_output_ZGZ22_02_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_078902_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_11_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_1_20061022_duration_200mn_comptage_60.txt M3_output_ZGZ22_078902_20051022_duration_200mn_comptage_60.txt M3_output_ZGZ22_128_20061022_duration_200mn_comptage_60.txt #### Output: $VAR1 = [ 'M3_output_ZGZ22_1_20061022_duration_200mn_comptage_60.txt', 'M3_output_ZGZ22_02_20061022_duration_200mn_comptage_60.txt', 'M3_output_ZGZ22_11_20061022_duration_200mn_comptage_60.txt', 'M3_output_ZGZ22_128_20061022_duration_200mn_comptage_60.txt', 'M3_output_ZGZ22_078902_20051022_duration_200mn_comptage_60.txt', 'M3_output_ZGZ22_078902_20061022_duration_200mn_comptage_60.txt' ];