in reply to Listing out the characters included in a character class

How about
use Mock::Data 'charset'; my $thaiLCons= charset( codepoint_ranges => [ 0x0E04, 0x0E07, 0x0E0A, 0x0E0D, 0x0E11, 0x0E13, 0x0E17, 0x0E19, 0x0E1E, 0x0E27, ], codepoints => [ 0x0E2C, 0x0E2E ], ); my @characters= $thaiLCons->members->@*;

Or in a one-liner! perl -E 'use Mock::Data "charset"; my $c= charset("\x{E2C}\x{E2E}\x{E04}-\x{E07}\x{E0A}-\x{E0D}\x{E11}-\x{E13}\x{E17}-\x{E19}\x{E1E}-\x{E27}"); use DDP; &p($c->members);'

See the rest of the examples for Mock::Data::Charset

In short, the inversion lists from Unicode::UCD are the *design* you want, but that module doesn't give you utilities to work *with* inversion lists, it just gives you the lists from the unicode standard. You need to write a bunch of code like I did in Mock::Data::Charset.