Chinaunix首页 | 论坛 | 博客
  • 博客访问: 147984
  • 博文数量: 47
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 402
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-11 10:08
文章存档

2013年(47)

我的朋友

分类: PERL

2013-04-26 11:33:16

#! c:/perl/bin -w
use strict "vars";
local $newspaper = "The Times";
print "$newspaper";


#会报错.
Global symbol "$newspaper" requires explicit package name at testing.pl line 3.
Global symbol "$newspaper" requires explicit package name at testing.pl line 4.
testing.pl had compilation errors.
如果把local $newspaper 换成:
my $newspaper 或者 our $newspaper 都是可以正确运行的.


这个原因是由于
local并不是用来声明局部变量的,声明局部变量的事情是my来做的;local是用来将一个已经存在的全局变量局部化的,所以,使用strict的时候,local局部化的变量必须要事先声明。
C:\Documents and Settings\fibbery>perl
#! c:/perl/bin -w
use strict "vars";
our $newspaper;local $newspaper = "The Times";
print "$newspaper";
^D
The Times

还有一点,一般用 "{}",即 左右花括号,来界定local的作用域。上面的左右花括号界定的区域也叫“块”。

以后使用需要注意!!!!!!
阅读(1136) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~