my @parts = $ARGV[0] =~ /^(\w+)%(\d+)d[.](\w+)$/; $parts[1] =~ s/^0*//; my $re = qr{(?x: ^ $parts[0] \d{$parts[1]} [.] $parts[2] $ )}; my $glob_str = "$parts[0]*.$parts[2]"; print for grep { /$re/ } glob $glob_str;