本神奇的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)运行为乱码。
分享到:
相关推荐
标题中的"ActivePerl-5.8.6.811-MSWin32-x86-122208.msi.7z"表明这是一个针对Windows 32位系统的ActivePerl版本5.8.6.811的安装程序,它已经被压缩成7z格式的文件。ActivePerl是Perl编程语言的一个流行的实现,特别...
Perl的版本号通常由主版本号、次版本号和修正版本号组成,这里的5.10.1表示这是Perl 5系列中的一个稳定版本,而.5可能是该版本的第五次更新。 描述中提到,"strawberry-perl-5.10.1.5"适合那些在Windows上进行Perl ...
在CentOS 6操作系统中,Perl被广泛用于系统管理、文本处理、网络编程、Web开发等多种任务。本资源包"perl-centos6.rar"提供了Perl在CentOS 6上的离线安装包,包括了perl-5.10.1-127.el6.x86_64.rpm等组件,这些组件...
Perl 5.16.3是Perl 5系列的一个稳定版本,提供了许多改进和新特性。在这个版本中,开发者可能会发现以下关键更新: 1. **改进的性能**:Perl 5.16引入了优化的编译器和运行时环境,提升了程序执行效率,尤其是对于...
4. **模块和CPAN**:CPAN(Comprehensive Perl Archive Network)是Perl模块的宝库,包含了数万个第三方模块,可以帮助扩展Perl的功能。学习如何使用CPAN和导入模块可以极大地提升开发效率。 5. **正则表达式**:...
总之,Perl 5.8.6.811 for MSWin32-x86是一个功能强大、灵活的编程工具,尤其适合在Windows环境中进行文本处理、系统管理和自动化任务。通过熟练掌握Perl,开发者可以极大地提高工作效率,处理复杂的问题。
标题中的"perl-5.34.0.tar.gz"指的是Perl语言的第5.34.0版本,它被打包成一个tar归档文件,并使用gzip进行压缩,这种格式在Linux和Unix类系统中非常常见。 Perl 5.34.0是一个重要的更新,它包含了自上一版本以来的...
6. **第6学时:模式匹配** - 正则表达式(regex)基础,包括字符类、量词、分组等。 - 使用`m//`、`s///`和`=~`操作符进行模式匹配和替换。 - `grep`和`map`函数在处理列表中的模式匹配应用。 7. **第7学时:...
它作为一个编译器工具,主要任务是帮助开发者创建词法分析器,这是编译器或解释器的第一步,用于识别源代码中的基本元素,如标识符、关键字、运算符等。这里提到的PERL正则表达式转换,指的是flex能够理解并处理PERL...
5. **Perl5**:Perl5是Perl语言的当前稳定版本,它包含了丰富的标准库和第三方模块,如Perl-net-etcd,这些模块扩展了Perl的功能,使其能处理特定的任务。 6. **etcd客户端**:Perl-net-etcd是一个Perl版本的etcd...
- Perl5 是Perl语言的第五个主要版本,引入了许多新特性和改进,至今仍是最广泛使用的Perl版本。 2. **Emacs编辑器** - Emacs 是一个高度可定制的、全功能的文本编辑器,支持多种编程语言,并且具有内置的shell、...
5. **管道符**:`|`用于连接多个命令,将一个命令的输出作为另一个命令的输入。 6. **数组**:Shell脚本支持一维数组,但不支持多维数组。 7. **脚本执行权限**:使用`chmod`命令为脚本添加执行权限,例如`chmod +...
5. **模块使用**:Perl拥有丰富的CPAN(Comprehensive Perl Archive Network)库,提供数千个预编译的模块,如`LWP::UserAgent`用于网络请求,`DBI`用于数据库操作。 6. **网络编程**:Perl可以创建客户端和服务器...
Perl是一种强大的脚本编程语言,尤其在文本处理和系统管理任务方面表现卓越。"perl-tools"是一组专门针对Perl语言的实用工具,旨在提高Perl程序员的效率和代码质量。这个压缩包"perl-tools-master"很可能包含了多种...
5. **OAuth2 支持**:Stormpath 提供 OAuth2 认证,Perl-stormpath 可以帮助开发者集成 OAuth2 授权流程,支持第三方应用访问你的服务。 6. **自定义字段**:Stormpath 允许为账户添加自定义数据,Perl-stormpath ...
此次第六版涵盖了最新的Perl 5.14版本的变化。 Perl能在绝大多数平台上完成几乎所有任务,不管是简单的修修补补,还是大型完备的网络应用。《Perl语言入门》从最基础的开始教起,然后逐渐深入,让你慢慢能够自行编写...
根据提供的文件信息,我们可以推断出这是一本关于Perl编程语言的入门书籍——《Perl语言入门_第6版》的下载链接。以下是对该书可能包含的一些重要知识点的概述: ### Perl语言简介 Perl是一种高级、通用且解释型的...
- **perl5**:Perl的第五个主要版本,目前广泛使用的版本,区别于早期的Perl 4。 - **apache-kafka**:Apache Kafka的标识,表明这个项目是Apache软件基金会的一部分。 - **librdkafka**:这是一个C语言实现的Kafka...
烟雾测试Perl 5 Rosettacode任务已经设置了,为什么还不设置Perl 5? 它能有多难? :-)时间线解决了现有任务的积压工作,现在在需要的地方添加了丢失的任务。 最初,针对最近发布的5.28版本的Perl进行测试。 一旦...