Perl
shangboerds
淡薄以明志,宁静而致远
展开
-
调试 Perl 脚本
-- StartPerl 是一门非常松散的语言,在默认情况下,我们使用一个未定义的变量或把一个字符串和一个数字进行数学运算它也不会报任何错误,所以当我们写完一个 Perl 脚本时,最好使用下列方式之一进行调试。#!/usr/bin/perl# 方法1 -- 修改沙邦,添加 -w 选项#!/usr/bin/perl -w# 方法2 -- 添加 warnings 编原创 2012-06-11 21:34:43 · 1500 阅读 · 0 评论 -
重定向输入输出
-- Start在 Linux 中,我们通过大于号(>) 和小于号(#!/usr/bin/perluse strict;my $file1 = "c:/a.txt";my $file2 = "c:/b.txt";# 打开文件open IN, "< $file1" || die "$!"; # 以只读方式打开 $file1open OUT, "> $file2" ||原创 2012-06-28 19:52:40 · 952 阅读 · 0 评论 -
数据类型之哈希
-- Start学过 Java 的人应该对 hash 不陌生,所谓 hash 就是存储一对 key 和 value 的一种数据结构,它用来存储一种对应关系,如:省份证号和姓名,IP 地址和域名等等。在 Perl 中,key 必须是字符串,value 可以是任何标量。下面的例子演示如何使用hash。#!/usr/bin/perl%IDForName; # 空hash%IDForN原创 2012-06-29 18:55:30 · 4787 阅读 · 0 评论 -
控制结构
-- Startif 语句和其他语言一样,Perl 也有 if 语句,不同的是 Perl 没有布尔类型,任何值都可以用于条件判断,数字 0,字符串 '' 和 '0',空列表,undef 等为假,其他为真。下面是一个简单的例子。#!/usr/bin/perl$a = "a";$b = "b";# 注意此处是比较字符串,所以应该使用字符串比较操作符if($a gt原创 2012-06-17 17:36:31 · 738 阅读 · 0 评论 -
文件与目标操作
-- Start文件测试有时候我们需要判断某个文件是否存在,很简单,使用 -e 即可,下面是一个简单例子。#!/usr/bin/perlprint "请输入路径和文件名:\n";chomp (my $file = );if(! -e "$file") { print STDERR "找不到$file文件";}除此之外,我们还可以通过下面的操作原创 2012-07-11 20:54:15 · 995 阅读 · 0 评论 -
数据类型之列表与数组
-- Start对于下面的 Perl 语句,等号左边的$name 被称为标量,等号右边的"尚波" 被称为字符串常量,它的意思是把字符串常量"尚波"赋给变量$name。$name = "尚波";对于下面的 Perl 语句,等号左边的@names 被称为数组,等号右边的被称为列表,它的意思是把列表中的值赋给数组@names。@names = ("尚波", "张三", "李四")原创 2012-06-21 19:38:19 · 1798 阅读 · 0 评论 -
正则表达式
-- Start如果你还不知道什么是正则表达式或者不是很清楚,请先阅读 正则表达式精萃。下面是一个在 Perl 中使用正则表达式的简单例子。#!/usr/bin/perl# qr/.../ 用来定义正则表达式# 在定义的同时,可以不指定或指定一个或多个全局匹配模式# 下面的代码构建了用来匹配固定电话号码的正则表达式, 采用不区分大小写和多行模式my $regex原创 2012-06-30 18:28:46 · 1098 阅读 · 0 评论 -
调用操作系统命令
-- StartPerl 是一门脚本语言,难免有时候我们需要调用操作系统命令,我们可以使用system函数来执行系统命令,如果我们想捕获系统命令的输出结果,我们可以使用反引号(``),如下是一个简单的例子。#!/usr/bin/perl# 调用 date 命令system "date";# 捕获 date 输出my $now = `date`;print "原创 2012-07-19 21:42:43 · 1018 阅读 · 0 评论 -
总结
-- Start到此为止,我们已经学会了 Perl 的语言核心,我们已经可以用 Perl 来解决一些简单的问题了,但是如果你想用 Perl 来解决一些更复杂的问题,如:连接数据库,生成 Excel 等等,我们还需要学习这些专用的包,你可以到 CPAN 上搜索自己感兴趣的包。anyway,一旦掌握了语言核心,学习这些包是非常容易的。-- 更多参见:Perl 精萃-- 声 明:转载请注明出原创 2012-07-20 21:48:38 · 611 阅读 · 0 评论 -
格式化输出
-- StartPerl 提供了两个函数用来格式化输出 write 和 printf。 write 函数比较复杂,主要用来生成报表,但是现在已经很少有人使用了,现在的大部分报表都是生成一个 Excel 文件,Perl 有专门的模块来生成 Excel 文件。相比之下,printf 函数使用的比较多,原因是 C 语言和 Java 都支持printf 函数,所以大家都比较熟悉,即使不原创 2012-06-26 22:11:11 · 742 阅读 · 0 评论 -
向脚本传递参数
-- Start在需要的时候我们可以向 Perl 脚本传递参数,Perl 会自动将所有的参数放到数组 @ARGV 中, 下面是一个简单的例子。#!/usr/bin/perluse strict;if(@ARGV != 1) { # die 函数用来输出错误信息并退出程序 # $0 中存储的是脚本的名字 die "Usage: $0 ";}my ($name) = @ARG原创 2012-06-26 20:26:00 · 3693 阅读 · 0 评论 -
标准输入输出
-- Start标准输出通常,所谓的标准输入指的是键盘,标准输出指的是屏幕。我们已经知道了如何通过 print 函数来打印消息到标准输出,事实上,那是简写,完整的写法如下:#!/usr/bin/perl# 标准输出print "message\n";print STDOUT "message\n";# 标准错误输出print STDERR "error\n";原创 2012-06-17 18:25:51 · 1130 阅读 · 0 评论 -
日期和时间
-- StartPerl 中没有专门的日期数据类型,我们可以通过以下三个函数来得到当前日期和时间。time -- 返回自 1970-01-01 00:00:00 的秒数。localtime -- 将秒数换算成本地时间gmtime -- 将秒数换算成GMT时间结合 time 和 localtime 函数,我们就可以得到当前时间,下面是一个简单的例子。#!/usr/原创 2012-07-09 22:09:51 · 677 阅读 · 0 评论 -
Perl 注释
-- StartPerl 只支持单行注释,没有多行注释。注释以 # 开始到行尾。#!/usr/bin/perl# perl 是非常松散和自由的语言,一个体现是调用函数时,在没有语义冲突的情况下括号总是可选的print ("Hello World.\n");print "Hello World.\n"; -- 更多参见:Perl 精萃-- 声 明:转载请注明出处原创 2012-06-10 16:05:54 · 1632 阅读 · 0 评论 -
数据类型之标量
-- StartPerl 是一种弱类型的语言,它并不像 Java 等其他语言那样严格区分数字和字符串。在 Perl 中,不管是数字还是字符串都用标量(scalar)来存储,一个标量变量以 $ 开头。那 Perl 是如何来识别一个标量中存储的是数字还是字符串的呢?答案就是操作符。操作符需要什么类型的数据,标量就会被转换成什么类型的数据。如果对两个标量进行数学运算,那么不管这两个标量中存储的是什么原创 2012-06-10 17:01:07 · 2813 阅读 · 0 评论 -
运算符
-- StartPerl 除了支持其他语言都支持的运算符外,它还支持一些特殊的运算符。算术运算符#!/usr/bin/perl$x = 2;$y = 3;$r = $x + $y; #加print "$r\n";$r = $x - $y; #减print "$r\n";$r = $x * $y; #乘print "$r\n";$r原创 2012-06-18 20:10:34 · 593 阅读 · 0 评论 -
引用
-- Start什么是引用引用相当于 C 语言中的指针,存储的是内存地址。引用可以指向标量,数组,hash,函数等。创建和使用引用使用反斜杠(\)来创建引用,下面是一个简单的例子。#!/usr/bin/perl# 常量的引用my $nameRef = \"尚波";print "我叫$$nameRef\n";# 简单变量的引用my $name =原创 2012-07-06 20:16:44 · 859 阅读 · 0 评论 -
包和模块
-- Startrequire如果我们有一个 date.pl,其中包含了一些关于日期操作的函数,如下:#!/usr/bin/perlsub getToday { my (undef,undef,undef,$mday,$mon,$year) = localtime(time); return sprintf("%04d%02d%02d", $year + 1900, $原创 2012-07-07 19:52:45 · 1001 阅读 · 0 评论 -
Perl 简介
-- Start什么是 PerlPerl 是一种脚本语言,解释执行,无需编译环境。它的全称是实用摘录和报告语言(Practical Extraction and Report Language)。Perl 能够用来干什么?时至今日,Perl 的应用已经非常广泛了,Web编程, 系统管理, 网络编程, 数据库管理等等,作者目前开发的项目正在使用 Perl 生成各种报表和运行各原创 2012-06-10 15:11:30 · 1347 阅读 · 0 评论 -
函数
-- Start系统函数Perl 提供了大量的函数供我们使用,详细列表见 perldoc。自定义函数自定义函数又称子程序(subroutine),子程序可以出现在程序的任何地方。一般放在程序的开始或结尾,下面是一个简单的例子。#!/usr/bin/perl# 定义子程序sub max { my ($num1, $num2) = @_; if($nu原创 2012-06-25 12:45:02 · 701 阅读 · 0 评论 -
类和对象
-- StartPerl 中的类和模块非常相似,都是用包来实现,下面的例子我们定义了一个 Date.pm 类。#!/usr/bin/perl# 指定包名,类名和包名相同package Date;#------------------------------------------------------- 构造函数# 构造函数的名字可以是任意的名字,通常使用 n原创 2012-07-08 14:15:49 · 659 阅读 · 0 评论 -
Perl 精萃
-- Start为了方便大家的阅读,本人已经将本系列文章做成 pdf 电子书,上传到 CSDN,爱问,百度文库,豆丁,欢迎大家下载。Perl 简介Perl 注释数据类型之标量运算符数据类型之列表与数组控制结构数据类型之哈希函数标准输入输出重定向输入输出格式化输出向脚本传递参数日期和时间正则表达式调用操作系统命令原创 2012-06-10 09:01:59 · 2295 阅读 · 1 评论