用perl写文本处理程序,或者写服务器端脚本的时候,常常会遇到“Wide character in print” 的警告或者错误。这是因为在程序中处理中文等宽字符时,perl不能识别要处理的内容。首先要知道perl只能处理两种编码:ascii码和utf-8。ascii码是很少的,像中文、日文、韩文等字符要想能被perl处理,只能用 utf-8编码方式。perl就会把那个字符串当做utf-8编码的字符来处理;如果是0,perl就不能认知字符串中除了 ascii码之外的字符,这个时候,就会报出“Wide character in print”的警告或者错误。举个例子,你要在程序中处理‘当历史成为历 Read More
posted @ 2011-06-08 17:47 ACE封印 Views(1239) Comments(0) Diggs(0) Edit
本应用程序设计的几个基本理念是:l 工具箱再利用: 尽可能利用已有的工具;l 简化运行步骤; 不引入过多的业务逻辑,满足的需求越简单越好。所以,我们定义了本应用程序依赖于以下几个工具的运行:l ActivePerl-5.8.4.810-MSWin32-x86l Upload.pll Upload.config我们将主要的执行逻辑都放在Perl源文件Upload.pl中了,配置文件为Upload.config。 这个perl文件将执行的任务是, 按照指定的文件夹目录,自动将该文件夹下的所有文件上传到指定ftp站点的指定目录下。 这个Perl脚本实际是从Uwe Keim的《Perl Script Read More
posted @ 2011-06-08 14:41 ACE封印 Views(845) Comments(0) Diggs(0) Edit
考虑如下示例:@dates = qw(2001/1/1 2001/07/04 1999/12/25);你想按日期升序对它们进行排序,哪种方法最有效呢?最直观的Schwartzian转换可以这样写:@sorted = map { $_->[0] }sort { $a->[1] <=> $b->[1] or $a->[2] <=> $b->[2] or $a->[3] <=> $b->[3]}map { [ $_, split m</>, $_, 3 ] } @dates;然而,更高效的Guttman-Ros Read More
posted @ 2011-06-08 14:01 ACE封印 Views(243) Comments(0) Diggs(0) Edit