Perl最佳实践的第10章建议不要使用baseword文件句柄,而是在打开文件时使用分配给词法变量的间接文件句柄。
同样,在打开目录时,最好是使用分配给词汇变量的间接dirhandle而不是bareword dirhandle吗?
编辑我不认为这是一个简单的“意见”类型的问题,因为这会使用已发布的推荐做法来提高代码的健壮性。
答案 0 :(得分:9)
我猜你要问的是使用词法变量(opendir(my $dh, ...)
)而不是命名的glob(opendir(DH, ...)
又名opendir(*DH, ...)
)。
词法变量的范围限定为块或文件,而命名的globs是全局的。这意味着opendir(DH, ...)
为opendir(my $dh, ...)
,our $x
为my $x
。
在编程中,你总是希望尽可能使用最小的范围,所以词法变量通常是更好的选择。