Perl 新手笔记系列6。Perl 的变量的使用

上一篇 / 下一篇  2006-09-08 00:00:00 / 个人分类:Shell & Unix

Perl 新手笔记系列

开始认真的学习PERL, 决心把PERL 变成我的技能列表的一项,顺手记录以下学习历程。

笔记:(纯属原创哦)
6。Perl 的变量的使用

定义变量,引用变量,变量赋值,use strict, use warnings……


如 前面所说,Perl 里的变量分为标量,数组,哈希。而三种变量在写法上是有所区别的:

标量: 定义为标量的变量,以 “$” 开头
数组: 定义为数组的变量,以 “@” 开头
哈希: 定义为标量的变量,以 “%” 开头
所以,我们只要看到变量的前缀,就可以知道他是哪种类型。

变量的定义/引用/赋值
变量的定义很简单

my 变量名; #包括$,@,%前缀

引用时也是直接用

变量名; #包括$,@,%前缀

赋值采用的基本多数语言通用的 等于号“=”:

变量名=变量值
或者
变量名=指令返回值
或者
变量名= 变量值运算式

如:
my $var ; my $var2;my $var3; # 定义变量
$var=1 ; # 这就是直接赋值
$var2=$var+1; # 变量值运算式
$var3=length('123'); # 函数返回值

print $var3 # 引用变量

命名规则
当然,perl的变量名也有一定的要求,必须以“_” 或者字母开头,后面可以跟 字母,数字或者“_” :

my $12 = 1234;
print $12;
my $aa=1234;

是可以的,而

因为perl中的变量
my $12a = 1234;
print $12a;

则会失败。

strict模式

事实上,perl中的变量也可以事先不声明(my $var部分),而直接引用。如:

$var4=123;
print $var4;
print $var5;

但是这样显得不是很严格,不符合一些写惯C/JAVA等对语法要求很严格的语言的习惯,不过perl可以用一个叫strict的包来保证语法的严谨。
具体是这个样子的,在perl语句的最前面加入 use strict; 就可以保证语法的严谨了。

perl

use strict;
$myvar=123;
print $myvar;

Global symbol "$myvar" requires explicit package name at a.perl line 4.
Global symbol "$myvar" requires explicit package name at a.perl line 5.


就会报错 。
通过 use strict; 就可以避免引用未定义的变量

warnings 模式和-w 开关
另外,PERL 还提供了warings包或者 -w 开关 来对程序进行运行时检查,其中包括变量是否初始化(赋值)。

比如说:

perl

use warings;
my $var;
print $var;

就会报错

perl -w

my $var;
print $var;

效果和前面的一致。

warnings 和 strict 的区别

strict 是语法检查,如果失败的话,会根本不执行整个语句,而warning 则是把错误报出来,但是不影响程序执行。

试验一下:
perl
use strict;
print "line 1n";
print $aaa;
print "line 2n";

Global symbol "$aaa" requires explicit package name at - line 3.
Execution of - aborted due to compilation errors.

连第一行都不执行,而warings则不会终止program:
perl
use warnings;
$aaa=123;
my $bbb;
print "line 1n";
print $bbb;
print "line 2n";

Name "main::aaa" used only once: possible typo at - line 2.
line 1
Use of uninitialized value in print at - line 5.
line 2

程序继续执行,只是会有告警……


TAG:

引用 删除 Guest   /   2008-10-25 15:44:50
1
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-04  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 2559
  • 日志数: 444
  • 建立时间: 2007-12-26
  • 更新时间: 2008-09-09

RSS订阅

Open Toolbar