码迷,mamicode.com
首页 > 其他好文 > 详细

Perl:perl编程要注意的问题。

时间:2014-10-01 19:11:01      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   ar   文件   数据   

这里归纳一下用perl语言编程需要注意的问题。

1. 由于哈希值是没有先后次序的,所以哈希函数返回的值都是经过sort的,而非哈希赋值时的状态。例如:

my %hash2=( ten => 10, fiirt => 1, second => 2, third => 3, fouth => 4);
print keys %hash2;

---result-----
fiirtsecondthirdfouthten

 使用哈希函数each,获得结果也是经过sort的,例如:

my %hash2=( ten => 10, fiirt => 1, second => 2, third => 3, fouth => 4);

while (my ($key, $value) = each %hash2) {
    print "$key => $value\n";
}

-----result------
fiirt => 1
second => 2
third => 3
fouth => 4
ten => 10

 2. Perl变量、数组变量、哈希变量没有定义和undef的区别。如果没有用my(strict的要求),则不能使用。只有定义了,但没有赋值,其值才为undef。例如在一下例子运行错误。

if (%dfd) { print ok;} else { print not ok;}

 3. 把未定义值当成数字使用时,Perl会自动将它转换成0。如果使用use warnings;use strict。虽然程序会报错,虽然依旧会出结果。

print 12*$a;

------result-------
Name "main::a" used only once: possible typo at ts2.pl line 19.
Use of uninitialized value $a in multiplication (*) at ts2.pl line 19.
0[nan@localhost pl]$ fg

 4.<>在读取文件的时候,在最后一行读完后,会返回undef值,其目的是为了结束循环之用。例如:

open FILE, "<tt.pl" or die "the file tt.pl can not be opened $!";
while(<FILE>) {
  print;
}

但是,在<STDIN>从键盘读取数据的时候,如果使用while循环,则无法跳出循环,所以最好设置一个跳出循环的特殊字符。例如:

while (<>) {
  last if (/^EOF$/);
  print;
}

 

Perl:perl编程要注意的问题。

标签:style   blog   color   io   os   使用   ar   文件   数据   

原文地址:http://www.cnblogs.com/zuiaishenlin/p/3984650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!