神奇的Perl-第六个任务(5)

本文介绍Perl程序在不同操作系统上的运行技巧,包括如何在Windows和Linux环境下稳定运行Perl程序,设置环境变量以及处理字符编码问题。

本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

1.1         跨平台运行

Perl程序虽然可以跨平台运行,但编写出可移值的代码需要很多技巧,在此仅列举部分技巧。

1.1.1 执行程序

1、            WINDOWS平台下,Perl一般运行在控制台,如果想更稳定运行,建议安装microsoft  Windows PowerShell

Windows PowerShell 是一种免费的命令行解释器和用于系统管理和自动化的脚本语言。在Microsoft.net 框架上构建,Windows PowerShell 使 IT 专业人员和开发人员控制和自动化的 Windows 和应用程序管理。WINDOWS 7已经默认安装了此工具,在其它版本windows运行的 Windows PowerShell下载地址如下:

http://technet.microsoft.com/zh-cn/scriptcenter/dd772288.aspx

2、            linux平台下,Perl一般在shell环境执行 ,还需要注意以下2点:

1) 代码最好以下面的行开始,该行必须写在文件的第一行(当然,这样在WINDOWS下也能执行,因为#表示注释,不会对程序有任何影响):

#!/usr/bin/perl

符号#!用来告诉LINUX系统,它后面的参数是用来执行该文件的程序。我们使用/usr/bin/perl来执行程序,如果你的Perl解释程序安装在其它目录,请更改该行的目录名。

2)使chmod命令使Perl脚本可执行(假设Perl程序为test.pl)

chmod +x  test.pl;

1.1.2  ENV环境变量

%ENV是当前环境信息的哈希变量,%ENV对于perl代码可移植性很重要,它提供了很多系统的信息。运行下面的perl4-19.pl,能获得当前系统信息。

#perl4-19.pl

while (my ($key,$value)=each %ENV){#$key为系统信息,$value为信息值

  print "$key===>$value\n";

}

在笔者的Ubuntu平台(Ubuntu 是一个由全球化的专业开发团队建造的LINUX操作系统,是 Windows Office 的开源替代品)下运行perl4-19.pl,能得到如下信息:

LANG===>zh_CN.UTF-8

可看出当前系统的字符编码为:ZH_CN.UTF-8

1.1.3 字符编码

LINUX平台默认使用UTF-8编码,中文windows系统默认使用GBK编码。以一个简单的中文字符串匹配为例:

#perl4-18-linux.pl

@names=qw(李明 李永 黄珏 刘上新);

#我们从以上数组中取出所有姓“李”的名字。

foreach  $name(@names){

        $xing="";

   print "$name "  if ($name=~/^$xing/);

}

将以上perl4-18-linux.plUTF8(BOM)格式存储,在LINUX下该程序运行正常,而WINDOWS的控制台(包括powershell)运行为乱码。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值