- 博客(23)
- 收藏
- 关注
原创 [Perl] 变量$` ,$' 和@-
看到这些古怪的符号却不知道他们代表什么,怎么办?查perldoc perlvar! $`也叫$PREMATCH,指字符串中正则匹之前的部分;$ 也叫$POSTMATCH,指字符串中正则式之后的部分;不过它们都可能带来性能上的问题,因此推荐使用@-作为替换。 @-也叫@LAST_MATCH_START, 它是一个list, 记录最后一次正则匹配开始的位置。$-[0]就是
2009-03-06 11:55:00
459
原创 [Perl]对非标量函数返回值的处理
函数的返回值肯定不可能只是标量,当返回值为多个时,我们可以把返回值放入列表,这是很正常的。但是如果函数的其中一个返回值不是标量,情况会是什么样子?#!/usr/bin/perlsub get_value{ my $err = 0; my @arr1; my @arr2; push @arr1, "item for arr1"; push @
2009-03-06 11:29:00
1329
原创 [Perl]正则表达式中使用变量
sub regfromvar{ my $str1="requestform"; my $str2=$str1; my $parttern = "request(form)"; my $replacement = $1; print $str1,"/n"; if($str1 =~ s/$partt
2009-03-06 11:27:00
4975
原创 [Python]什么是浅拷贝,深拷贝
浅拷贝是指拷贝的只是原对象元素的引用,换句话说,浅拷贝产生的对象本身是新的,但是它的内容不是新的,只是对原对象的一个引用。这里有个例子>>> aList=[[1, 2], 3, 4]>>> bList = aList[:] #利用切片完成一次浅拷贝>>> id(aList)3084416588L>>> id(bList)3084418156L>>> aList[0][
2009-03-06 11:26:00
1715
原创 [Perl]处理IO多路转接
IO多路转接模型在"unix环境高级编程"里有重点讲到,其基本模型可以用这个典型的例子加以归纳:1) 要接收socket套接字传来的数据,并在标准输出上显示;2) 要接收标准输入,在标准输入上显示后发生到网络;这个例子在实际应用中很常见,比如我们使用的telnet客户端,或ssh客户端。编程上该如何处理呢?1)多进程:两个进程分别单独处理上面1)、2)中提到的事务
2009-03-06 11:25:00
609
原创 [Perl]用log4perl记录日志
今天看到一个关于介绍log4perl用法的好东东,按照习惯,把其中的要点记录下来。logger 是用于产生日志的对象,其中三个重要的属性:1. Levels:用于定义日志内容的优先级,包括DEBUG, INFO, WARN, ERROR, FATAL;2. Categories: 用于定义是日志来自系统的那一部分;3. Appenders:用于说明你的日志输出到哪里;
2009-03-06 11:23:00
3768
原创 [Perl]pack/unpack函数--利用模板控制文字格式
在chinaunix上看到用pack/unpack函数,利用模板格式化读取内容,觉得有点意思,于是去看了看perltutpack,很长,没有看完,这里只介绍最基本的场景和用法。假设你有这样一个文件:Date |Description | Income |Expenditure01/
2009-03-06 11:17:00
2546
1
原创 [Perl]用perl抓网页
经常看到的是LWP::Simple这个模块,用它来抓网页最简单。昨天心血来潮,用了一把WWW::Mechanize,这个模块比LWP::Simple功能强大,可以把一个网页上的链接提出来,可以按正则表达式搜索文字,图片等。记得之前在水木上看到过一个常用Perl模块的列表,找到了也准备贴到这里,以后可能会有用得着的时候。
2009-03-06 11:16:00
836
原创 [Android]第一次提交代码
第一次使用google code,感觉不错,没遇到问题。环境:windows, eclipse, eclipse插件subversive, 同时也装了TortoseSVN,不过subversive应该够用了。用eclipse自带的wizard创建了一个工程,现在google code上的trunk终于不是empty了。第一次提交代码,也该纪念一下,2009年1月
2009-01-12 17:13:00
518
原创 [Perl] 用Perl解析JSON文件
最近接触了一种叫做JSON (JavaScript Object Notation) 的数据格式,官方的说法是“一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成“。 我的感觉是这个东东和XML之类的格式类似,总之当我们需要格式化地传输数据时,这些东西就可以起作用了。 关于JSON本身是怎么组织数据的,可以去这里。数据格式定义好了,剩下的事情就是用编程语言解析它
2008-12-30 17:31:00
3409
原创 [Perl] 几个Perl的小技巧
其实就是把小骆驼第五版的17章做了个中文摘要,这些高级技巧常常忘记,写一写希望能帮助自己加深记忆。1. 用eval获得程序的执行错误$a = 10;$b = 0;$c = $a/$b;会发生什么?程序会crash,因为有浮点数异常。用eval就可以做到两全,既执行语言,又能在出现异常的时候不crash$a = 10;$b = 0;eval {$c = $a/
2008-12-30 14:50:00
736
原创 [Linux] 与进程相关的ID
Linux下与进程相关联的ID有这么三种:1. 实际用户ID,实际组ID这在用户登录系统时就确定了2. 有效用户ID,有效用户组ID,添加组ID这一类ID决定着我们的进程运行时对文件的访问权限;添加组ID是说,一个用户可以属于多个组;3. 设置-用户-ID,设置-组-ID它们的作用是什么呢?简单的说就是让程序在执行时(exec)拥有一个和有效用户/组ID不同的副本。一个比较好的例子是程序passw
2008-12-24 14:00:00
931
原创 [Perl]Perl module的一些小结
Perl Module关于Perl module改如何使用,如何编写,现在初步有一些肤浅的体会,总结如下:1. 如何引用不在系统默认路径中的module?方法1:使用lib use lib qw (/your/path/to/module);貌似这几乎等价于BEGIN {unshift (@INC, LIST)}方法2:修改@INCBEGIN { unshift @INC, /home/roge
2008-12-18 11:35:00
1002
原创 [Perl]获取shell命令的执行结果
Perl里可以调用Shell命令,有时需要根据shell命令的返回结果做进一步的工作,如何获得shell的执行结果?方法有很多:1. 重定向shell的标准输出或标准错误输出到某临时文件,然后再从临时文件中读出执行结果。这个办法的好处是可以把标准输出和标准错误输出分开保存!2. my $res = `ls`;这种方法很直接,也很想shell3. open( my $fh, "ls |") or d
2008-12-16 13:42:00
1768
原创 [Linux]rpm的配置文件
生成的rpm包到底在/usr/src/readhat/packages 还是/usr/src/packages/RPMS?这取决于你主机rpm的配置,可以通过"rpm --showrc"查看rpm的配置。比如上面说的问题就在于你的rpmdir这个变量在rpm的配置文件中是什么。如果你希望修改某个配置变量的值,你可以去修改rpm的配置文件,/usr/lib/rpm/macros,
2008-12-16 13:37:00
1052
原创 [Linux]RPM包的依赖
前不久遇到了RPM包默认存放位置的问题,今天又遇到RPM包依赖的问题。其实RPM包依赖关系早就不是新鲜话题了,现在RPM里有yum可以解决依赖,deb里有apt,这些都是比较熟悉的概念。今天的问题是,我们的一个模块需要打包成RPM后安装,之前的编译打包工作在US那边进行。现在我们接手,自己在一个RHEL4上建立的编译环境,RPM包也能顺利生成。可惜问题是安装的时候总是失败
2008-12-16 13:36:00
2025
原创 [Perl] Getopt::Long模块用法
阅读perldoc.perl.org是最好的掌握模块使用方式的途径。还是那句话,20%的内容能够满足80%的需求,所以这个只是简单描述Getopt::Long的用法。1.选项可以保存在标量里 my $verbose = ; # option variable with default value (false) my $all =
2008-12-16 13:35:00
5769
原创 [Linux] VIM自动补全功能
ctrl-n或者ctrl-p是vim里按关键字自动补全的快捷键。今天发现vim竟然对Perl也有很好的支持,默认配置下vim会在:1.当前文件的buffer2.其他窗口的buffer3.其他buffer4.ctags5.include头文件(也包括perl的模块)下进行关键字查找!perl的use就类似于c/c++的include,所以vim的自动补全支持在p
2008-12-16 13:34:00
1576
原创 [Perl] Data::Dumper模块的用法简介
Perl由于有了引用,使得我们可以在不同的数据结构之间灵活的嵌套数据结构。比方说,Hash的value可以是标量,也可以嵌套list,甚至还可以继续嵌套hash。这样使得我们写代码的确方便了不少,但有的时候我们希望对这些复杂的数据结构有个直观的感受,也就是说能够用perl的语法吧数据结构以及实际值表示出来。这在开发阶段尤其有用!正好Perl的模块Data::Dumper
2008-12-16 13:30:00
15890
原创 [Perl]如何使用perl对unicode的支持
转载一篇好文,来自IBM DeveloperWorks功能丰富的 Perl: Perl 增强了对 Unicode 的支持其中可以学到binmode的用法,EOF的用法,以及unicode的相关用法。Perl的运行选项也最好加“-C”,显示支持utf8.和utf8相关的模块有utf8, Encode。如何判断一个字符是utf8编码还是非utf8编码?my $
2008-12-16 13:29:00
872
原创 [Perl]怎样判断一个字符是不是ASCII码
主要还是看ASCII码的值,$str =~ m/[^/0-/127]/$str =~ m/[^/x0-/x7f]/要注意反斜线的作用,转义符,一定不要少!
2008-12-16 13:28:00
1648
原创 [Python]Unicode是什么东西
Unicode是什么东西,通常情况下我们不会被它困扰,但如果它引起了问题,我们往往找不到方向。找到了一个不错的Howto,而且结合了Python对unicode的处理,贴到这里,慢慢读,呼唤耐心。先把一些摘要翻成中文放在这里:1. 为什么会有Unicode?ASCII是我们最熟悉的编码方式,它用一个字节(8位)表示一个字符,但是它显示不能容下全世界各种不同语言(比如我们中文
2008-12-16 13:26:00
1787
1
原创 [Linux] rpm安装中的scriptlets
什么是scriptlet? google金山词霸告诉我它的中文含义是“脚本小程序”。什么rpm安装过程中的scriptlets又是啥呢?我们知道rpm安装过程中分为%pre-install %post等几个阶段,每个阶段都有一些辅助脚本,这些脚本就叫scriptlet如何你想知道你在安装rpm时背后到底执行了什么scriptlets, 可以使用这个命令rpm --query -
2008-12-16 11:57:00
389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人