perl入门笔记(五)
文件句柄: 程序里代表perl进程与外界之间的I/O联系的名称,他是这种“联系”的名称,并不是文件名称。 6个文件句柄是预留的,叫STDIN,STDOUT,STDERR,DATA,ARGV和ARGVOUT Larry建议所有的文件句柄命名时都用大写字母 STDIN表示perl进程与它的输入源之间的联系,即标准输入流 die函数: die函数会输出你写的信息到标准错误流中,然后让你的程序立刻终止并返回不为0的状态的错误码 $!表示什么?表示可读的系统错误信息 如果open失败,die会终止程序的执行,$!只能表示有系统服务请求时候的错误信息,不能是用户程序级别的。因为那个时候$!是无法捕捉到的。 if(!open LOG,'>>','logfile') 如: #!/usr/bin/perl -w 为say指定一个文件句柄: 哈希中键和值是任意的标量,其中键都会被转化为字符串。 其中键必须是唯一的字符串,值可以重复 访问和赋值哈希值:$hash{$some_key} 注意:使用的是大括号,而不是方括号 指代整个哈希:使用%,如%family_name 展开哈希:@array=%some_hash 这是一个简单的键值对列表,得到的顺序不一定是原来的,因为perl会为了检索的快速重新对其排序,所以使用hash的场合不应该对顺序有很严格的要求,至少可以很方便的再排序。 哈希复制: my %new_hash=%old_hash 这个在实际中少用,因为perl要做的东西很多,大致上它会先将old_hash转化成列表,然后将列表元素构造键值对,然后形成新的new_hash my %reverse_hash=reverse %any_hash 翻转哈希表,先将其转化为列表(key,value,key,...),然后翻转列表为(value,...),现在我们能够按照“值”找到“键”了。但注意这样的话表明原来的值对于也不应该是有重复的,因为这样的话翻转之后就会出问题。 胖箭头: 其实在perl中任何使用逗号分割的都可以替换成胖箭头 my %last_name=( 'fred'=>"flinstone", 'dino'=>undef, 'barney'=>'rubble', ) 无需引号的字符序列,称为裸字,它可以独立存在并且不加引号没有歧义。 注意:如果不是裸字,就会被作为表达式计算然后结果作为键。 #!/usr/bin/perl -w each函数: #!/usr/bin/perl -w exists函数: 判断键是否存在,存在则返回真,否则返回假。无需关心键值 delete函数: 删除哈希中的键以及对应的键值,当键不存在时就直接结束而不发生任何错误提示。注意这与定义了一个哈希元素的值为undef的情况不同,至少两者的exists函数结果不同。undef时结果为真。 %ENV哈希: #!/usr/bin/perl -w use strict; use 5.010; print "$ENV{'PATH'}"; 结果与操作系统相关。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |