ken@titan ~/tmp/pm_11155205_uni_char_class
$ ls -l
total 2
-rw-r--r-- 1 ken None 590 Oct 27 22:12 PolyUniCharClass.pm
-rwxr-xr-x 1 ken None 404 Oct 27 22:13 uni_char_class.pl
####
package PolyUniCharClass;
use strict;
use warnings;
{
my %char_class_despatch = (
InThaiHCons => \&InThaiHCons,
InThaiLCons => \&InThaiLCons,
);
sub list {
my ($char_class) = @_;
unless (exists $char_class_despatch{$char_class}) {
warn "Char class '$char_class' doesn't exist!\n";
return [];
}
return [
map chr hex, @{$char_class_despatch{$char_class}->()}
];
}
}
sub InThaiHCons {
return [qw{0E02 0E03 0E09}];
}
sub InThaiLCons {
return [qw{0E04 0E07 0E0A}];
}
1;
####
#!/usr/bin/env perl
use strict;
use warnings;
use open OUT => qw{:encoding(UTF-8) :std};
use lib '.'; # DEMO ONLY -- DON'T use in PRODUCTION!
use PolyUniCharClass;
print "InThaiHCons:\n";
print @{PolyUniCharClass::list('InThaiHCons')}, "\n";
print "InThaiLCons:\n";
print @{PolyUniCharClass::list('InThaiLCons')}, "\n";
print "InThaiMCons:\n";
print @{PolyUniCharClass::list('InThaiMCons')}, "\n";