打开 FileHandle 进行阅读

打开通用 ASCII 文本文件

Version >= 5.6.0

open my $filehandle, '<', $name_of_file or die "Can't open $name_of_file, $!";

这是默认文件 IO 的基本习惯用法,并使 $filehandle 成为 bytes 的可读输入流,由默认的系统专用解码器过滤,可以使用 open pragma 进行本地设置

Perl 本身不处理文件打开时的错误,因此你必须通过检查 open 的退出条件来自行处理。$! 填充了导致打开失败的错误消息。

在 Windows 上,默认解码器是 CRLF 过滤器,它将输入中的任何“\ r \ n”序列映射到“\ n”

打开二进制文件

Version >= 5.8.0

open my $filehandle, '<:raw', 'path/to/file' or die "Can't open $name_of_file, $!";

这指定的 Perl 应该执行 Windows 上的 CRLF 翻译。

打开 UTF8 文本文件

Version >= 5.8.0

open my $filehandle, '<:raw:encoding(utf-8)', 'path/to/file' 
   or die "Can't open $name_of_file, $!";

这指定的 Perl 都应该避免 CRLF 翻译,然后将所得的字节解码为字符串的字符 (如整数的数组,可以超过 255 内部实现),而不是字符串字节