in reply to Extract the middle part of a list
You had all the pieces, just need to alter them slightly:
use warnings; use strict; my @files = qw( aaa_bbb_10.ddd.eee aaa_bbb_11.ddd.eee aaa_bbb_12.ddd.eee aaa_bbb_13.ddd.eee aaa_bbb_14.ddd.eee aaa_bbb_15.ddd.eee ); my $min = 12; my $max = 14; my @filtered = map {$_->[0]} grep {$_->[1] >= $min && $_->[1] <= $max} map {my ($time) = /(?:[^_]*_){2}(\d+)/; [$_, $time]} @files; print "@filtered";
Prints:
aaa_bbb_12.ddd.eee aaa_bbb_13.ddd.eee aaa_bbb_14.ddd.eee
|
|---|