设为首页 收藏本站
查看: 1009|回复: 0

[经验分享] 神奇的Perl-第六个任务(5)

[复制链接]

尚未签到

发表于 2017-5-18 11:41:32 | 显示全部楼层 |阅读模式
本神奇的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.pl以UTF8(无BOM)格式存储,在LINUX下该程序运行正常,而WINDOWS的控制台(包括powershell)运行为乱码。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378762-1-1.html 上篇帖子: Pickup Knowledge for Perl and Version Upgrade 下篇帖子: Perl 学习记录2 控制程序流
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表