perl处理中文
最近用perl处理中文时遇见不少问题,google了一下,得到好文章一篇,贴出来共享:Perl从5.6开始已经开始在内部使用utf8编码来表示字符,也就是说对中文以及其他语言字符的处理应该是完全没有问题的。我们只需要利用好Encode这个模块便能充分发挥Perl的utf8字符的优势了。[@more@]下面就以中文文本的处理为例进行说明,比如有一个字符串"测试文本",我们想要把这个中文字符串拆成单个字符,可以这样写:use Encode;$dat="测试文本";$str=decode("gb2312",$dat);@chars=split //,$str;foreach $char (@chars)
perl常用特殊变量
1. $_ $ARG,常常是一个默认变量 2. @_ @ARG,子例程参数表 3. {row.content} $PROGRAM_NAME,本程序的名字 [@more@]4. @ARGV 本程序的命令行参数表 5. $" $LIST_SEPARATOR,数组内插到双引号字符串中时所用的分隔符, 默认为空格 6. $, $OFS,或$OUTPUT_FIELD_SEPARATOR,用于print的输出字段分隔符, 即一个print语句中用逗号分隔的部分之间用什么分隔,默认为无 7. $ $ORS,或$OUTPUT_RECORD_SEPARATOR,用于print的输出记录分隔符, 即一个print语句结束时末尾添加什么,默认为无 8. $/ $RS,或$INPUT_RECORD_SEPARATOR,输入记录
perl文件操作
用 Sysopen()进行更多的控制 为了更好的控制文件的打开方式,可以使用 sysopen() 函数: use Fcntl; sysopen(FH, $filename, O_RDWR|O_CREAT, 0666) or die "Can't open $filename for reading/writing/creating : $!"; [@more@]函数 sysopen() 带有四个参数,第一个是同open()函数类似的文件句柄参数,第二个参数是不带模式信息的文件名,第三个参数是模式参数,由Fcntl 模块提供的逻辑OR运算组合起来的常数构成,第四个参数(可选),为八进制属性值(0666表示数据文件, 0777表示程序)。如果文件可以被打开,sysopen() 返回true
perl调试哲学(转)
描述 我的调试哲学我相信三件事情:这不是个人问题别老想着是你的代码。你可能觉得自己是个艺术家,但实际上就算是经验丰富的大师也会写出很多垃圾。每个人的代码都是垃圾,我的也是你的也是。要学着去喜欢它。当你碰到问题的时候,你应该想:“噢,我写的垃圾代码出了点问题。”这说明你不再去责怪 Perl。不应该变成个人性的问题。忘记你以前怎么做的。如果不是你做事的方法有点问题,你也不会来读这个。这并不是坏事,只是到了该有点长进的时间。我们都经历过的。[@more@]个人责任感如果你的代码出了问题那仅仅是——你的问题。你应该尽
PERL SOCKET
使用PERL SOCKET API首先需要载入SOCKET模块。 use Socket; socket(文件句柄,AF_INET,数据类型,协议类型); #建立套接字 文件句柄随便找个词就可以了。 AF_INET为域类型,也可以写为PF_INET。 数据类型,通常用有两种:SOCK_STREAM、SOCK_DGRAM。 协议类型,可以用协议号代替,EGP---8、HMP---20、ICMP---1、 RAW---255、RDP---27、RVD---66、TCP---6、UDP---17、XNS-IDP---22、 其他---22、ALL---0;也可以用getprotobyname()函数作此参数。 例子:socket(SOCK,AF_INET,SOCK_STREAM,getprotobyname('tcp')); 语柄为SOCK,套接字以TCP方式传
利用Perl解析XML文件
当在Perl中使用XML时,你会有将近五百个CPAN模块可以选择,每一个都支持整合Web服务的不同方面。此外,Perl的核心库包括多个支持XML的模块。这篇文章就关注于一个最早期且涉及最频繁的核心模块:XML::Parser. XML::解析器系列 最初的Perl解析器XML::Parser::Expat由Larry Wall在几年前编写并由Clark Cooper保持延续。模块作为Expat XML parser的界面由James Clark用C语言编写且已经被一些脚本语言所采用。 Expat是一个以事件为基础的解析器,意味着特定条件触发处理功能。例如,一个开始或结尾标记将触发适当的用户定义子程序。XML::Parse
unlink,link,symlink等,处理文件和目录
删除文件在perl中用unlink操作符删除文件,同shell的rm命令一样。unlink "aa","bb","cc"; 把这三个文件删除。与glob函数结合起来可以一次删除多个文件unlink glob "*.o"; 删除当前目录下以.o结尾的文件,与rm *.o相似。unlink的返回值告诉我们有多少文件被成功删除。my $successful = unlink "aa","bb","cc";print "I delete $successful file(s) just now.n";[@more@]如果想知道那个文件被删除,可用循环,一次删除一个文件。foreach my $fi
perl 中glob函数的使用
ExampleTry out following example: Here glob will retun all the files which begin with "perl_g"#!/usr/bin/perl(@file_list) = glob "perl_g*";print "Returned list of file @file_listn";[@more@] Syntaxglob EXPRglobDefinition and UsageReturns a list of files matching EXPR as they would be expanded by the standard Bourne shell. If the EXPR does not specify a path, uses the current directory. If EXPR is omitted, the value of $_ is used.From Perl 5.6 on, expansion is done in
数据仓库监控平台
2008年初,我在itpub论坛上提出了怎么做数据仓库监控平台的帖子,得到了很多网友的建议,时过一年,我的监控平台的运行已经取得了很好的效果,作为回报,我对监控平台的思想做个总结,献给大家。对于大型的数据库应用系统(如BI系统),都包括很多服务和应用,我们没法实时知道系统运行是否正常,特别是晚上的时候,如果服务器宕机了、应用服务死掉了、数据库空间不足了、ETL服务器磁盘满了、关键作业链上的某个作业失败等等中的任何一个环节出现问题,都会严重影响客户体验,甚至带来不可预料的麻烦,这时候就必须有一套对系统进行监控的措
80后的格言
“80后”,曾经被认为是“柔弱的一代”、“垮掉的一代”,然而,进入08年,当国家经历重大苦难之时,“80后”们用实际行动告诉世人:我们正在走向成熟。人终要长大的。换言之,是自己慢慢学着长大。在人生的道上一步一个脚印,或深或浅记录着芸芸众生成长的深度。成长越慢的人往往受得伤就会越多,面对种种伤痕我们要做的不仅仅是承受,更多的是要感恩。感谢那些让你受伤的事情,忘记那些让你受伤的人,伤害也许是无意的,成长却是必须的。[@more@]1、每天11:00点前睡觉,每天7:30点前起床,熬夜是自毁青春最大的表现2、每天提醒自己,不
perl 多线程
需要引入的pm文件有:use threads; #导入threads多线程处理包 use threads::shared; #使用线程间共享变量程序和C基本上一样,下面是有关线程操作的相关代码:#main functionsub main(){ $dbcon = ConnectTD(); while(1) { my @dataset = Get_Config_Info(); my $rec_cnt = @dataset; for(my $i=0;$i<$rec_cnt;$i++) { processFiles($dataset[$i][0],$dataset[$i][1],$dataset[$i][2],$dataset[$i][5],$dataset[$i][6],$dataset[$i][7]); } fore
perl操作二维数组
NAME perllol - 操作数组的数组(二维数组)说明 声明和访问数组的数组 创建一个数组的数组(有时也可以叫“列表的列表”,不过不太准确)真是再简单也不过了。它相当容易理解,并且本文中出现的每个例子都有可能在实际应用中出现。 数组的数组就是一个普通的数组(@AoA),不过可以接受两个下标("$AoA[3][2])。 [@more@]下面先定义一个这样的数组: # 一个包含有“指向数组的引用”的数组 @AoA = ( [ "fred", "barney" ], [ "george", &qu
perl连接Oracle错误
error "ORA-12705: Cannot access NLS data files or invalid environment specified" 如果在同一台电脑上已经先安装了标准的 Oracle Database Client,就会出现这个错误信息,解決方法:打开注册表 HKEY_LOCAL_MACHINESOFTWAREORACLE 內找出 NLS_LANG ,这个键值现在应该是 NA,也是导致 ORA-12705 错误的原因,因此將 NLS_LANG 的值改为AMERICAN_AMERICA.ZHS16GBK 就可以正常使用了。[@more@]
项目团队组建的原则(转)
① 根据项目范围和预算确定团队的人数 项目初始阶段,项目经理也许只了解到一些有关项目范围、交货期限方面的信息以及客户对一些功能需求的简单描述。为了对项目人力进行估计,有必要进一步细化项目范围。 [@more@]◆ 首先在企业内部争取到一个比较得力的助手,他可能是项目未来的开发经理、系统分析员或高级程序员。这一点很重要,既然你的项目组一定会有其他人的参与,与其到外面去招,不如在内部找你熟悉和信赖的同事加盟。因为你不仅了解他们的能力,而且作为老员工,他们的稳定性也相对有保障,更重要的是,项目一开始你就不再是孤军
项目经理开会要点
组织会议是项目经理日常工作中一项非常重要的工作任务,项目过程中很多重要的决定都是在会议中做出的,也有很多由于不成功的会议而对项目本身造成了不好的影响。[@more@]首先我们看看不成功的会议常常表现为哪些形式: 1、会议氛围不好,参与者发言不踊跃;2、会议讨论常常偏离主题;3、会议没有取得预期的结果;4、会议时间常常一拖再拖。这些不成功的会议最终的结果就是:既浪费了大家的宝贵时间又没有达到会议的目的,很多人都经历过这样的会议,对此也是深恶痛绝。以下是根据我个人的经验,列出了会议组织者应该注意的问题,也可看作组