在Perl中使用词法手柄是否更可取?

时间:2014-02-27 17:58:40

标签: perl file-io

Perl最佳实践的第10章建议不要使用baseword文件句柄,而是在打开文件时使用分配给词法变量的间接文件句柄。

同样,在打开目录时,最好是使用分配给词汇变量的间接dirhandle而不是bareword dirhandle吗?

编辑我不认为这是一个简单的“意见”类型的问题,因为这会使用已发布的推荐做法来提高代码的健壮性。

1 个答案:

答案 0 :(得分:9)

我猜你要问的是使用词法变量(opendir(my $dh, ...))而不是命名的glob(opendir(DH, ...)又名opendir(*DH, ...))。

词法变量的范围限定为块或文件,而命名的globs是全局的。这意味着opendir(DH, ...)opendir(my $dh, ...)our $xmy $x

在编程中,你总是希望尽可能使用最小的范围,所以词法变量通常是更好的选择。