我正在使用String::Multibyte
模块,似乎String::Multibyte->new()
接受charset作为第一个参数,如果不支持charset则抛出异常。我认为支持的字符集是由特定目录中的*.pm
文件定义的。
获得支持的字符集的最强大的方法是什么?获取文件是唯一的方法吗?
答案 0 :(得分:0)
我不确定我是否理解这个模块的价值,并且源代码有一些可疑的东西,但除此之外,看起来你将不得不使用类似于模块本身的方法:
use File::Basename qw( basename );
use File::Spec::Functions qw( catdir );
require String::Multibyte;
my $dir = catdir(basename($INC{'String/Multibyte.pm'}), 'Multibyte');
opendir my $dh, $dir or die "Cannot open charset dir '$dir': $!";
my @charsets = grep s/[.]pm\z//, readdir $dh;
close $dh;
代码未经测试。