
PERL学习笔记
文章平均质量分 55
波特王子
csdn太难用了,唉
展开
-
Perl Unicode全攻略(转)
转自:http://blog.chinaunix.net/u2/70049/showart_1210487.html耐心看完本文, 相信你今后在unicode处理上不会再有什么问题.本文内容适用于perl 5.8及其以上版本.perl internal form在Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的转载 2010-01-17 03:50:00 · 2537 阅读 · 2 评论 -
perl 的测试框架 (Test::Base)
Test::Base是什么?用官方的说法是“数据驱动的测试”。Test::Base是一个测试框架,只要给它提供测试数据,它就能自动进行单元测试,省却了手工编写测试程序的麻烦。可能有人用过Test::More模块进行自动测试,那么我推荐你使用Test::Base。Test::Base 与Test::More完全兼容,也就是说你可以仅仅将use Test::More;换成use Test::Bas转载 2012-03-22 15:45:06 · 1229 阅读 · 0 评论 -
perl 调用外部命令之system,exec,“反引号
system执行一条命令,并返回退出状态,它并不会捕获命令的输出,它会开启一个新的进程,父进程会等待它执行完后在继续执行exec会结束当前的进程并执行一条命令但绝不返回“反引号会执行外部命令并捕获输出,反引号中内插变量会在编译的时候做替换。转载 2012-04-25 14:46:11 · 1666 阅读 · 0 评论 -
Perl中的向后引用
\n表示向后引用use strict;use warnings;my $str = " hello world ";if($str =~ /(?#start of a tag)]+)>(.*?)(?#end od a tag)/){ print "$1\n"; print "$2\n"; print "$3\n";}原创 2012-05-10 20:51:54 · 627 阅读 · 0 评论 -
Perl包的安装
windows下网络直接安装:1. ppm安装set http_proxy=http://host:portSET HTTP_proxy=, followed by a colon and the proxy port, if applicable; e.g., SET HTTP_proxy=http://proxy:8080ppm install 模块名2. cpan原创 2012-06-06 11:16:12 · 763 阅读 · 0 评论 -
perl的逻辑运算
perl语言与其它语言一样,也有逻辑运算,但是由于perl没有基本变量类型的原因,逻辑运算过程往往会产生一定的隐患。if($value){} 这种写法,经常用来判断$value是否已定义,尤其$value作为数组中的值时。在通常的分类中,perl中的变量分为标量、矢量和布尔。其中,标量分为列队、数组和散列。标量分为数字、字符串、指针和未定义。这些分类最大的特点就是可以根据当前转载 2012-05-24 13:58:00 · 3980 阅读 · 0 评论 -
正则表达式
元字符\ba\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。\b\w{6}\b 匹配刚好6个字符的单词。表1.常用的元字符转载 2012-06-21 10:08:03 · 856 阅读 · 0 评论 -
Perl文件及目录操作
大多数程序都不是孤立的,它们与它们的环境相互作用。很多的程序也需要通过文件操作实现数据的存贮和交换。 文件句柄(file handle)是Perl程序中为程序和外部世界提供I/O连接的名称。建议全部使用大写字母以示与变量等的区别。特别地,也可以将STDIN/STDOUT/STDERR也认为 是Perl的文件句柄,分别代表标准输入/标准输出/标准错误输出。 打开及关闭文件转载 2012-07-05 16:39:12 · 730 阅读 · 0 评论 -
Perl二维数组
二维数组 1 数组与引用2 声明的区别3 访问的区别4 添加行元素5 添加列元素6 访问与打印6.1 运算符优先级6.2 访问一个6.3 遍历7 切片1 数组与引用此处引用相当于C中的指针。二维数组第一列不存储具体元素而是存储指转载 2012-07-03 11:07:40 · 2095 阅读 · 0 评论 -
以前看《perl24》书做的部分笔记(zz)
以前看《perl24》书做的部分笔记 第一部分 perl基础 一、 Perl入门perl –v#!/usr/bin/perl –w#!/usr/bin/env perlperldoc perlperldoc tf printperldoc –q support 二、 perl 的基本构件:数字和字符串转载 2012-07-03 11:05:26 · 1168 阅读 · 0 评论 -
Perl多进程与多线程简单示例
多进程:#!/usr/bin/perluse strict;use warnings;print "Starting main program\n";my @childs;for ( my $count = 1; $count <= 10; $count++) { my $pid = fork(); if ($pid) { # parent #print "pi转载 2013-01-14 09:01:49 · 1778 阅读 · 0 评论 -
Perl 中的线程(1)
线程概述线程是一个单一的执行流程,它是所有程序执行过程中最小的控制单位,即能被 CPU 所调度的最小任务单元。线程与进程之间既有联系,又完全不同。简单地说,一个线程必然属于某一个进程,而一个进程包含至少一个或者多个线程。早期的计算机系统一次只能运行一个程序,因此,当有多个程序需要执行的时候,唯一的办法就是让它们排成队,按顺序串行执行。进程的出现打破了这种格局,CPU 资源按时间片被分割开来转载 2013-01-14 15:29:17 · 765 阅读 · 0 评论 -
Perl 中的线程(2)
>#!/usr/bin/perluse threads ('yield', 'stack_size' => 64*4096, 'exit' => 'threads_only',转载 2013-01-14 17:17:59 · 690 阅读 · 0 评论 -
Perl文件类型判断
示例:if(-e "FileName"){ print "TRUE\n";}else{ print "FALSE\n";} 检测选项 含义-r 文件或目录对此(有效的)用户(effective user)或组是可读的-w 文件或目录对此(有效的)用户或组是可转载 2013-04-08 17:26:56 · 2146 阅读 · 0 评论 -
Eclipse安装Perl插件
Eclipse安装Perl EPIC插件,在Eclipse中开发Perl项目前提:已经安装了 Eclipse,Java,Perl(例如 ActivePerl)。步骤:启动Eclipse,Eclipse中, 选择 Help 菜单选择 Software Updates... 菜单项,或者,选择 Install New Software ... 菜单项输入转载 2013-10-15 14:15:40 · 1292 阅读 · 0 评论 -
perl下stat()函数的使用
perl下的stat函数和shell下的stat命令的功能基本一致,也是取得文件的各类具体信息:stat()函数返回一个数组,下面是数组各个元素的含义:0 dev 设备号 驱动器号(C:通常是2,D:通常是3,等等)1 ino 索引节号 总是02 mode 文件的方式 无3 nlink 链转载 2013-10-24 17:47:20 · 2101 阅读 · 0 评论 -
perl的格式化(Format)报表输出
perl有最好的文本数据处理能力.这是大家都知道的.在perl本身有一个别的软件没有的小功能,就是Perl格式.它相当于简单的命令行报表和图表输出.这个需要先声明格式.创建格式的文件句柄.然后由@,^,,|这样的字符构成所谓的”报表”来输出图表.这样可以指定出行的外观.后面接数据项,最后用write来显示格式化的内容.样例:输出纪录格式输出象下边一样定义:format NAME =转载 2013-11-21 13:19:46 · 1686 阅读 · 0 评论 -
perl中localtime,time,gmtime的区别
localtime表示系统时间。time表示从1970年开始到现在时间的总秒数。gmtime表示标准格林威治时间。先看三者打出来的结果:[root@localhost test]# more an.pl#!/usr/bin/perlmy $time=localtime;print "localtime:",$time,"\n"; ###说明localtime(time)转载 2013-11-08 17:00:09 · 1019 阅读 · 0 评论 -
Perl中的环境变量%ENV
Perl中有一个叫做%ENV的环境变量,和其它的HASH散列一样,它可以被赋值,被打印。打印的方法:while(my ($key,$value)=each%ENV){ print "$key: $value\n";}赋值的方法:$ENV{'key'}="value";但是该方法只能在该进程中有效,当退出该进程时,赋值将不会继续存在;同时其它转载 2012-04-06 14:21:45 · 10366 阅读 · 1 评论 -
Perl 脚本中单元测试自动化浅析
Perl 脚本中单元测试自动化浅析来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-perl-unittesting/?cmp=dwskl&cpb=dw&ct=dwcon&cr=cn_优快云&ccy=cn刘华婷, software engineer, IBM简介: 随着敏捷开发模式的流行,单元测试的自动化也显得尤转载 2012-04-01 15:52:02 · 1638 阅读 · 0 评论 -
send files to a ftp server in PERL
use Net::FTP;sub sendloc2Ftp($$$){my($FtpFullPathFile, $LocalPath, $Localfile) = @_;my $user;my $password;my $host;my $port;my $remotePath;#match patterns like: ftp://anonymous:a原创 2011-11-02 22:25:47 · 640 阅读 · 0 评论 -
讨论perl中的utf-8编码处理
为了比较方便,考虑这样一个应用:把html页面中的所有非汉字字符全部去掉。这里顺便告诉大家一个秘诀,只要文本被perl 按正确编码解释后,利用/w就可以匹配一个字母、数字、_、汉字,这个特性是不是很方便,所以我们只要用如下两次正则表达式就可以去掉所有非汉字字符,包括全角的一些标点(@#$%<,())也能去的很干净:$str =~ s/[^w]//g;$str =~ s/[0-9a-zA-Z转载 2010-01-17 03:53:00 · 1862 阅读 · 0 评论 -
一些常用正则表达式
一些常用正则表达式 提取信息中的网络链接: (h|H)(r|R)(e|E)(f|F) *= *(|")?(/w|//|//|/.)+(|"| *|>)? 提取信息中的邮件地址: /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 提取信息中的图片链接: (s|S)(r|R)(c|C) *= *(|")?(/w|//|原创 2010-01-17 14:31:00 · 725 阅读 · 0 评论 -
perl对于encode的用法
perl对中文的处理(encode,decode)最近在处理中文时遇到乱码的问题,google了一下,发现下面这篇文章。茅塞顿开! Perl从5.6开始已经开始在内部使用utf8编码来表示字符,也就是说对中文以及其他语言字符的处理应该是完全没有问题的。我们只需要利用好Encode这个模块便能充分发挥Perl的utf8字符的优势了。 下面就以中文文本的处理为例进行说明,比如有一个字符转载 2010-01-17 03:52:00 · 1525 阅读 · 0 评论 -
学习使用Perl 5.8.6 中的Unicode 特性
尽管到 Perl 6 中才宣称完全支持 Unicode,但是在 Perl 5.8.6 中内嵌的对 Unicode 的支持已经足以开始编写本地化的应用程序了。Ted 使用自己所钟爱的编辑器 Yudit,介绍了 Perl 如何读取、解释和处理 UTF-8 编码的 Unicode。 从 5.6.0 版本发布以来,Perl 已经发生了极大的变化。Perl 6 项目是在一个名为转载 2010-01-17 14:49:00 · 987 阅读 · 0 评论 -
perl正则表达式不完全手册
perl正则表达式不完全手册一.正则表达式Regular Expression1.模式Pattern,正则表达式又称Pattern2.模式一般用来返回真(true)或假(false)的值3.模式pattern把无限数量的字符串集合分成2组:匹配的组和不匹配的组.即表达的计算出来的结果要码匹配要码不匹配,不有“可能,也许,似乎”4.可以放在双引号字符串中常见的反斜杠转义符都可以被用在pattern中转载 2010-01-17 14:30:00 · 966 阅读 · 0 评论 -
Does perl have a round function? What about ceil() and floor()?
Does perl have a round function? What about ceil() and floor()?Perl does not have an explicit round function. However, it is verysimple to create a rounding function. Since the int() funct转载 2010-01-23 00:51:00 · 1560 阅读 · 0 评论 -
perlembed - 在 C 程序中嵌入 perl
NAME perlembed - 在 C 程序中嵌入 perlDESCRIPTION 导言 你是想要: 在 Perl 中使用 C? 阅读 perlxstut、perlxs、h2xs、perlguts 和 perlapi。 在 Perl 中使用 Unix 程序? 阅读反引用符(back-quote)和 L 中的 "system" 以及转载 2010-01-29 22:01:00 · 1958 阅读 · 0 评论 -
PERL 语言中的q,qw,qr,qx,qq......符号用法
PERL 语言中的q,qw,qr,qx,qq......符号用法在perl语言中,有两个特殊而常用的符号qq qw,分别解释如下:qq{foobar}的意思为意思为双引号字符串,可内插变量相当于 "foobar"qw{foo bar}的意思为用空格分解字符串,得到列表,相当于如下语句split( ,foo bar) 得到的结果是foo,bar字符串比较等于用 eqq运算转载 2010-03-01 16:51:00 · 3820 阅读 · 0 评论 -
perl将全角转换为半角
转至 http://hi.baidu.com/%B0%AE%D0%C4%CD%AC%C3%CB%5F%B3%C2%F6%CE/blog/item/b921e5f5b1d69f2ebc310958.html在GB2312下的全角标点和ascii码下的半角标是有联系的。不要什么对照表,全角字符是两个字节,跟半角字符有一一对应的线性关系,很简单. 第一字节: 160+区号转载 2010-03-04 18:05:00 · 2968 阅读 · 0 评论 -
正则表达式--递归匹配、非贪婪匹配与分组替换
正则表达式--递归匹配、非贪婪匹配与分组替换1. 表达式的递归匹配有时候,我们需要用正则表达式来分析一个计算式中的括号配对情况。比如, 使用表达式 "/( [^)]* /)" 或者 "/( .*? /)" 可以匹配一对小括号。但是如果括号 内还嵌有一层括号的话 ,如 "( ( ) )",则这种写法将不能够匹配正确,得到的结果是 "( ( )" 。类似情况的还有 HTML 中转载 2010-03-09 21:13:00 · 2133 阅读 · 0 评论 -
steam.pl
use strict;use warnings;my $cylinder = 16; #直径my $pressure = 120;my $cost = 1_333_832; #下划线分隔my $effert = $pressure * 3.14159 * ($cylinder / 2) ** 2;print "Total pressure on the cylinder $effert/n原创 2010-01-08 23:05:00 · 628 阅读 · 0 评论 -
condition.pl
use strict;use warnings;if ("19" print "19 }else{ print "19 > 101/n";}if ("19" le "101"){ print " 19 le 101/n";}else{ print "101 le 19/n";}if ("able" eq "baker"){ print "able eq baker/n";}if原创 2010-01-08 23:09:00 · 721 阅读 · 1 评论 -
name2.pl
use strict;use warnings;my $name;print "Enter name: ";$name = ;chomp($name);my $year;print "Hello $name, how are you?/n";print "Enter a number:";$year = ;chomp($year);print "Youre $year years old.";原创 2010-01-08 23:08:00 · 746 阅读 · 0 评论 -
将输入文件按域分割的程序
use strict;use warnings;use FileHandle;#计算字符串的hash值sub HashFun($){ my $str = shift; my $sum=0; for(my $iLetter = 0; $iLetter < lengt原创 2011-09-16 16:38:32 · 498 阅读 · 0 评论 -
Read Config.xml in Perl
use XML::DOM;my $parser = new XML::DOM::Parser;my $doc = $parser->parsefile("config.xml");for my $task ($doc->getElementsByTagName("Task")){my $taskName = $task ->getAttribute("n原创 2011-11-02 22:10:50 · 689 阅读 · 0 评论 -
Select a batch of files from a path pattern(only the last folder changes)
sub SelectFiles($$$$;$$){my ($srcPathPattern, $srcFile, $desPath, $desFile) = @_;my $srcPath = dirname($srcPathPattern);my $folderPattern = basename($srcPathPattern);#print "$srcPathPattern, $原创 2011-11-02 22:16:34 · 456 阅读 · 0 评论 -
CreatePath
#creates a pathsub CreatePath($){my $path = shift;my $DIRDELI = $PubVar::DIRDELI;my @arr_path = split(/$DIRDELI/, $path);my $createdPath=$PubVar::DIRDELI;for(my $iLevel = 0; $iLevel if(l原创 2011-11-02 22:19:48 · 1499 阅读 · 0 评论 -
perl捕获异常
来源:http://5ydycm.blog.51cto.com/115934/560646perl捕获异常,仅供参考,可以扩展...####打开文件句柄 eval { open(FH,"domains.txt") or die "Can't open files,$!"; };#捕获异常 if($@){ #出现异常转载 2013-11-25 14:35:43 · 2455 阅读 · 0 评论