Posted on 2010-01-04 16:54
zdxue 阅读(300)
评论(0) 编辑 收藏
单数:标量(数字,字符串)
复数:数组,列表
哈希:
变量修饰符:
my 私有变量
state 持久性变量,相当于java中的static(
注意:state只能修饰标量,不能修饰列表和哈希类型变量)
另外,如果使用state,需要加上use 5.010; 编译指令
变量:
变量在定义后,如果没有初始化,那么标量将是undef, 数组将是空列表();
特殊变量:
$_ perl默认存储的地方
@_ perl默认子程序接受参数的数组(是子程序私有变量,访问@_里面的每个元素,用下标索引,如: $_[0], $_[1] ...注意:这里的$_[0]和$_不是一个东西)
标量上下文和列表上下文:
$
@或者()
子程序:sub
返回值:子程序最后一句语句的执行结果将默认作为返回值,print语句的返回值是1
编译命令:
use strict;
use warnings;
use ...
return:
1. 最后语句为return; #表示在标量上下文将返回undef; 在列表上下文将返回空列表()
2. return $a..$b; #将返回列表
3. return $a; #将返回标量
4. print “”; #将返回1
5. 不写return时,最后一句的运算结果将作为返回值
省略sub子程序调用的&号:
默认perl内置的函数调用,不需要加上&, 比如:print chomp sort reverse等等
但是用户自定义的子程序,最好加上!加上后还可以区别内置函数,比如:&chomp(), 这是说明调用的是自定义的子程序,不是内置函数
输入输出:
1. 标准输入<STDIN>
2. 钻石输入<>, 此输入中,命令行参数就是依次要处理的文件名,如果没有调用参数(即没有命令行参数),默认接受标准输入(键盘输入,也可以使用“-”符号表示标准输入)
例: perl testIO.pl f:/a.txt - f:/b.txt #此命令将:首先处理a.txt文件,然后处理标准输入,再接着处理b.txt文件
perl testIO.pl # 此命令行没有带调用参数,默认将处理标准输入
@ARGV 调用参数:相当于Java中main方法传递的String[] args参数
public class T{
public static void main(String[] args) {
}
}
类似C的格式化字符串和printf:
%d
%s
%f
%g
...
哈希:
%ENV perl系统提供的环境变量哈希
哈希的常用函数和遍历(keys, values, each, exists, delete)