- 安装
在linux上,如果遇到这样的提示
Can't locate Module/Datetime.pm in @INC
意味着Perl模块没有安装全, 可以用CPAN来安装缺失的模块
# perl -MCPAN -e- 'install Module::Build'
如果系统上很多模块都已经很旧了,用这个命令来自动更新
# /usr/local/bin/perl -MCPAN -e 'CPAN::Shell->install(CPAN::Shell->r)'
在Windows上,则可以用Active Perl 工具: PPM, 检测已安装的perl工具包
- CPAN
CPAN 是全面Perl 归档网络(Comprehensive PerlArchive Network)的缩写,那是一个值得常去的地方。这里有Perl 源码,
容易安装到非类Unix 系统的Perl,例子,文档,Perl 扩展部分,Perl 归档信息等。简言之,CPAN 是全面的。
- 使用模块
use File::Basename;
print F $line;
将$line写入文件F,添加到F尾部,而不会清除掉F原有内容。
e.g.
my $creTableFile = $dirName . "1.txt";
my $line = ();
$line .= "nice to meet you";
open (F, ">>$creTableFile") or die "ERROR: cant open file $creTableFile>($!)/n";
print F $line;
close F;
如果 <> 括号之间没有任何字符,则表示从命令行所指示的文件中读取数据
- 变量
Scalar:标量,数字或字符串,$a="wang"
List: 数组,@a=("wang",123,99.99), $test=$a[1]
hashes: 哈希/关联数组,%a=(one,"wang",two,"jason"), $test=$a{one}
- chomp
如果字符串结尾有换行符,chomp可以去掉它。这基本上就是它能完成的所有功能,如下例:
$text = “a line of text\n”; #也可以由<STDIN>输入chomp($text); #去掉换行符(\n)。
- $_
如果在foreach 循环中省略了控制变量,那Perl 会使用其默认的变量:$_。除了其不寻常的名字外,这和普通变量类似,如
下面代码所示:
foreach(1..10){ #使用默认的变量$_
print “I can count to $_!\n”;
}
- @_
Perl 子程序可以带参数。将参数列表传给子程序中的方法是,在程序名后面接括号,括号内存放参数列表,如:
$n = &max(10,15); #此子程序有2 个参数
此参数列表被传到子程序中;这些参数可以被子程序使用。当然,这些参存放在某个地方,在Perl 中,会自动将此参数列表(此参数列表的另一个名字)自动存放在一个叫做@_的数组中。
- <>
<>操作查看@argv 来决定使用哪些文件。如果表为空,则使用标准输入流;否则,使用其找到的相应文件。
- Perl 自身有六个文件句柄:STDIN,STDOUT,STDERR,DATA,ARGV,ARGVOUT
- 文件操作
打开文件
open (FILE, $filename) || die “Can’t open $filename\n”;
while($line = <FILE> )
{
print "$line";
}
close(FILE);
删除文件
unlink("abc.txt");
目录操作
opendir
closedir
mkdir
- 正则表达式
匹配: m/<pattern>/ m可以略去。末尾可带参数i,表示不区分大小写
替换(search and replace): s/<pattern>/<replacement>/ 末尾可带参数g,表是全局替换。
=~ 表是匹配
!~ 表是不匹配
- 系统函数
system“date”
system ‘ls–l $HOME’
my $now = `date`; #捕获date 的输出