船過水無痕

Java | Web | Architecture
posts - 12, comments - 0, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Perl

Posted on 2010-01-04 16:54 zdxue 阅读(292) 评论(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)

只有注册用户登录后才能发表评论。


网站导航: