我正在使用String::Multibyte模块,看起来String::Multibyte->new()接受一个字符集作为第一个参数,如果不支持这个字符集就抛出一个异常。我认为受支持的字符集是由特定目录中的*.pm文件定义的。
获取支持的字符集最可靠的方法是什么?拿到文件是唯一的办法吗?
发布于 2015-03-30 00:37:13
我不确定我是否理解了这个模块的价值,并且源代码中有一些可疑的东西,但除此之外,看起来您将不得不使用一个类似于模块本身所做的方法:
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; 代码是未经测试的。
https://stackoverflow.com/questions/29331325
复制相似问题