摘要:ppencode/rrencode/jjencode/aaencode是Perl、Ruby、Javascript的小工具,可以将各自的代码进行混淆,转换成特殊字符,甚至还可以转换成有意思的表情。ppencode-Perl 台湾的Perl达人唐鳳在YAPC曾经介绍过ppencode,它可以把Perl代码转换成只有英文字母的字符串。 下面是转换示例: Demo的地址:http://namazu.org/~takesako/ppencode/demo.html。rrencode-Ruby rrencode可以把ruby代码全部转换成符号。 下面是转换示例: 项目地址:http://www.lab..
阅读全文
摘要:英文原版见http://www.masonbook.com/。简介Mason是一个强大的,可以将Perl嵌入文本的模板引擎。它提供了许多特性,帮助你使用可重用的组件创建动态Web站点。除此之外,它还提供了很多的其他特性: 可以创建标准的、可重用的,像header、footer,或者菜单这样的组件。你只需要在一个地方进行改变。 完整的Web请求的参数处理。 内置缓存,用户可采用cache接口访问。 整合mod_perl以提供更快的速度和更好的弹性。 从一个组件的小段到整个站点,都支持内容过滤。《使用Mason在HTML中嵌入Perl》一书详细记录了HTML::Mason框架,包括如下章节:组件格
阅读全文
摘要:我曾经为我的朋友田逸写过一个Perl脚本,主要用于Nagios服务器故障的报警。非常简单,主要使用了LWP::Simple这个模块对短信服务Api进行请求。#!/usr/bin/perl -wuse strict;use LWP::Simple;use URI::Escape;use Digest::MD5;my ($mobile, $content) = @ARGV; # get params from command linemy $log_control = 1; # a switch of logmy $username = 'sery'; # your sms ser
阅读全文
摘要:Perl Memcached的客户端序列化对象采用的是Storable模块的nfreeze方法,而这个方法又调用了c扩展的do_store方法;反序列化使用的是Storable模块的thaw方法,而这个方法又是调用的c扩展的do_retrieve方法。而在PHP中,进行的却是serialize和unserialize操作。造成了无法正常读取的结果。Perl存储一个('a', 'c')数组的引用,命令行获取的结果如下:用二进制编辑器查看存储的结果如下:在PHP中memcache客户端gzuncompress和unserialize函数处理前可以得到存储的数据,打印
阅读全文
摘要:从学习Perl/Mason开始,长久以来,我都是在ubuntu下搭建Mason的开发、运行环境的,因为Perl是ubuntu的原生语言,而且通过新立得安装组件、模块来的非常方便。组内所有Mason开发环境,也是基于我研究的ubuntu平台。但是如何在windows下搭建Mason的运行、开发环境一直是我所困扰、想实现的。这样我们就可以不再限定于特定开发平台,无论对于开发、还是部署都有新的意义。通过反复尝试,终于在windows下顺利搭建好了Mason的环境,以下是搭建的步骤。安装ActivePerl:下载地址http://www.skycn.com/soft/1211.html。安装Apach
阅读全文
摘要:Perl中文/unicode/utf8/GB2312编码之间的转换是一件很让人头疼的事情,我总结了以下主要的转换方法,供大家了解参考。# author: jiangyujieuse utf8;use Encode;use URI::Escape;$/ = "/n";#从unicode得到utf8编码$str = '%u6536';$str =~ s//%u([0-9a-fA-F]{4})/pack("U",hex($1))/eg;$str = encode( "utf8", $str );print uc unpack
阅读全文
摘要:饭否的图片插件可用于论坛,博客,将用户的信息和一些最新动态用图片的形式表现出来。我们如果需要自行开发此功能的话,需要设置某种格式(或某个地址)的图片采用脚本来处理。在Perl中的话例如可以使用Apache的LocationMatch或者FilesMatch指令来进行设置,让某个Perl模块来进行处理。如果使用Mason的话,更为简单,不需要修改服务器,只需利用dhandler的特性,就可以让指定的脚本来处理。基本流程如下:主要代码如下: my $uri = $r->uri; if($uri =~ /.jpg$/) { $uid = substr($uid, 1, -4); # 从uri里
阅读全文
摘要:我们平常Mason的开发环境都是部署在Ubuntu平台上的,因为通过新立得安装某些必要的软件时非常方便。以下是部署的经验总结:需要通过新立得安装的模块包括:Apache2 mod_perl2(libapache2-mod-perl2) dbi(libdbi-perl,即DBI模块,可通过cpan安装)dbd(libdbd-mysql-perl/libdbd-mysql)libapreq2(包括libapache2-mod-apreq2,libapache2-request-perl,Apache2::Request/Apache2::Upload/Apache2::Cookie模块)mason
阅读全文