use strict; use warnings; use Unicode::UCD qw(prop_invlist); use String::Range::Expand qw(expand_expr); use List::Util qw(pairmap); my @invlist = prop_invlist('PosixAlpha'); my $to_expand = join(',', pairmap {"[$a-" . ($b-1) . ']'} @invlist); my @chars = sort map {chr $_} expand_expr($to_expand); print join(',', @chars), "\n";