Perl Path::Class::Unicode和错误处理
:我必须自己检查Perl Path::Class::Unicode和错误处理,perl,file-io,error-handling,perl-module,Perl,File Io,Error Handling,Perl Module,:我必须自己检查ufile和open是否有错误,还是自动检查 use Path::Class::Unicode; my $file = ufile( "filename" ); my $fh = $file->open; ufile只是类的构造函数的一个wapper,它不应该抛出任何错误 open方法是IO::File(或IO::Dir)的构造函数的一个重要组成部分。IO::File上的new方法可能会对无效参数抛出错误,但否则会返回文件句柄,或正常返回值open、sysopen等。但
ufile
和open
是否有错误,还是自动检查
use Path::Class::Unicode;
my $file = ufile( "filename" );
my $fh = $file->open;
ufile
只是类的构造函数的一个wapper,它不应该抛出任何错误
open
方法是IO::File
(或IO::Dir
)的构造函数的一个重要组成部分。IO::File
上的new
方法可能会对无效参数抛出错误,但否则会返回文件句柄,或正常返回值open
、sysopen
等。但是,这被IO::File
包装,以返回有效的文件句柄或undef
因此,您应该执行自己的错误处理:
my $fh = $file->open or die "Could not open $filename: $!";
# do not use the stringification of $file, as that would be a byte string
考虑到不同的操作系统如何处理Unicode文件名,我不确定Path::Class::Unicode是否有显著的好处。通常将文件名视为二进制数据,这就是当前<代码>打开/代码>建库的工作方式。