Perl 不同utf8的开放pragma有什么不同?

Perl 不同utf8的开放pragma有什么不同?,perl,utf-8,Perl,Utf 8,这三个版本的行为都不同吗 use open qw( :encoding(UTF-8) :std ); use open qw( :encoding(UTF8) :std ); use open qw( :utf8 :std ); 首先,:utf8仅将文本标记为UTF-8,不检查其是否有效。有关信息,请参阅 :编码是PerlIO的扩展层,perlperldoc perliol “:编码”使用编码; 使该层可用,尽管PerlIO.pm“知道”在哪里可以找到它。这是一个层的例子,它采用了

这三个版本的行为都不同吗

use open qw( :encoding(UTF-8) :std );  
use open qw( :encoding(UTF8) :std );  
use open qw( :utf8 :std );  

首先,
:utf8
仅将文本标记为UTF-8,不检查其是否有效。有关信息,请参阅

:编码是PerlIO的扩展层,perl
perldoc perliol

“:编码”使用编码;
使该层可用,尽管PerlIO.pm“知道”在哪里可以找到它。这是一个层的例子,它采用了一个被称为的参数:open($fh),Evan似乎有你的答案。为了将来的易用性,请参阅“打开Unicode-所有这些”。

这可能有答案,或者至少对你有帮助。Perl Unicode Cookbook是我问这个问题的原因。直到现在我使用
使用OpenQW(:编码)(UTF-8):std);
我认为这会是一个“更好”的选择。但是现在我看到这本书的作者使用了
开放qw(:std:utf8);
我想他知道自己在做什么。那么你会推荐什么,
使用开放qw(:std:encoding(UTF-8))
或者
使用开放qw(:std:utf8)
?如上所述,后者在阅读时被认为是危险的,但仍然是@tchrist在中推荐的。有什么原因吗?