首页 > 代码库 > Perl:perl编程要注意的问题。
Perl:perl编程要注意的问题。
这里归纳一下用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 => 1second => 2third => 3fouth => 4ten => 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编程要注意的问题。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。