如果(并且仅当)脚本不运行@ARGV
命令行选项,我想解码-CA
。例如:
use strict;
use warnings;
use Encode qw(decode_utf8);
BEGIN {
if ( ... ) { # <--- What condition to put here?
@ARGV = map { Encode::decode_utf8( $_ ) } @ARGV;
}
}
答案 0 :(得分:4)
perlrun
says A
标记的-C
部分对应32
(强调我的)。
从5.8.1开始,-C可以跟随数字或列表 选项字母。字母,其数值和效果如下 如下:列出这些字母等于对数字求和。
[...] A 32 the @ARGV elements are expected to be strings encoded in UTF-8
进一步说它${^UNICODE}
反映了-C
标志后面的东西的数值。因此,检查-CA
未被使用的正确方法是!( ${^UNICODE} & 0x20 )
。