小智 26
您链接的帖子具有误导性,或者至少是不完整的.确实,你永远不应该local用来创建一个词法变量.它没有这样做,这my就是为了什么.
但是,你应该使用local,当你需要它的实际功能:给一个临时的值到全局变量.这通常用于临时设置Perl的特殊变量.经典案例是这样的:
{
local $/;
$entire_file = <$filehandle>;
}
Run Code Online (Sandbox Code Playgroud)
要一次读取整个文件,您需要将记录分隔符设置为undefined.但你只想暂时这样做; 因此local应该使用.
这绝对不是气馁.它被认为是很好的Perl代码.
更新:我看到文章实际上有一个说明符合其"从不使用本地"声明.尽管如此,我认为做出如此全面的陈述是有误导性的.我同意该笔记正在回应的批评者.上面的例子是一个非常常见的基本案例,并且还有其他一些常见的用途local.
我知道初学者的教程需要保持简单,但简单并不一定意味着不准确. "现在,不要担心local;只是使用my"将同样清晰简单,但不会误导别人认为不应该使用本地.
使用my创建一个局部变量,这是大多数人想要的东西的时间.
可以local用于仅local执行以下操作:将全局变量设置为不同的值,该变量将在当前块之后恢复.这绝不是弃用的.它稳定,支持良好,是Perl的一项重要功能.(但是,碰巧不是人们倾向于想要创建局部变量的地方.特别是许多初学者从来不需要这样做.)
不鼓励使用的local是尝试创建局部变量,因为这是my应该使用的.从来没有任何理由可以使用local它.
| 归档时间: |
|
| 查看次数: |
430 次 |
| 最近记录: |