- 包变量
- 假如没有其他申明,变量就是包变量;
- 包变量总是全局的。
- 词法变量
- Perl里其他类型的变量叫做词法变量或私有变量,因为它们是私有的,必须使用my申明。
- local
- local实际不创建本地变量。
- local $x实际做的事是:它存储包变量$x的当前值在一个安全的地方,然后用一个新值替换它,假如没有指定新值,就使用undef代替。当控制离开当前块时,它也会恢复$x的旧值。它影响的是包变量,这个包变量获取了本地值。但包变量总是全局的,local申明的包变量亦无例外。
- our
- 使用use vars '$x'申明时,可以在任何地方使用全局变量$x。
- our $x的影响是词法作用域。our $x仅仅允许在程序的某些块里申明全局变量$x,假如意外的在其他地方使用它,仍会导致错误。
- 参考:perl中our的用法
没有评论:
发表评论