在perl中打开文件的不同方式

Mih*_*yan 4 perl file

我已经看到在perl中有时会打开一个文件进行编写,他们使用:

open(my $file_handle, ">$file_name");
Run Code Online (Sandbox Code Playgroud)

而有时:

open(FILE_HANDLE, ">$file_name");
Run Code Online (Sandbox Code Playgroud)

有什么不同?

Dav*_*idO 14

您展示的第一种方法是较新的,通常是有利的方法.它使用词法文件句柄(词法范围的文件句柄).第二种方法使用package-global typeglob文件句柄.他们的范围更广泛.现代Perl程序通常使用"我的"版本,除非他们有充分的理由不这样做.

您应该查看perlopentut(来自Perl文档)perlfunc -f open(来自Perl POD).这两个资源为您提供了很多好的信息.当你在那里时,查看open的三个参数版本,以及错误检查.现在打开文件的一个非常好的方法是:

open my $file_handle, '>', $filename or die $!;
Run Code Online (Sandbox Code Playgroud)