Path::Class::Unicode:我必须自己检查错误ufile
还是open
自动完成?
use Path::Class::Unicode;
my $file = ufile( "filename" );
my $fh = $file->open;
Path::Class::Unicode:我必须自己检查错误ufile
还是open
自动完成?
use Path::Class::Unicode;
my $file = ufile( "filename" );
my $fh = $file->open;
这ufile
只是类的构造函数的一个 wapper,它不应该抛出任何错误。
该open
方法是IO::File
(或IO::Dir
,就此而言)的构造函数周围的wapper。new
on 方法IO::File
可以为无效参数抛出错误,但否则返回文件句柄或 的正常返回值等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 是否具有显着优势。通常最好将文件名视为二进制数据,这就是当前open
内置函数的工作方式。