開啟 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 內部實現),而不是字串位元組