2.1 第六个任务声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载
BOSS交待一个任务,对某客户网站的访客进行网站流量分析,有以下要求:
1、按来源地区统计人数。
2、能在WINDOWS和LINUX下运行。
网站提供类似于以下格式的访问日志(iplog.txt),每项用TAB分隔:
日期 时间 IP来源
2010/8/3 9:42 159.226.117.45
2010/8/3 9:42 114.249.218.138
2010/8/3 9:41 58.211.230.30
我们计划首先使用正则表达式的正则变量捕捉时间、IP地址,接着根据IP地址查询地区,最后进行统计。
5.1
5.2
5.3
5.4
5.5
5.6
5.7
在 Perl 里,一个名字空间为一个包,包独立于文件,在一个文件里能有许多包,一个包也能跨越多个文件。
1、包的声明与符号表
package 用来声明包,声明的有效范围从声明本身开始直到遇到块结尾或文件结束或 eval或同层次的 package 声明。标识符可以是包中的标量变量,数组变量,子过程,文件或者目录句柄,它们将放到所属当前包的符号表中,可供其它包访问。
很显然,这些标识符不包括那些用 my 声明的变量,它的变量名和变量值的访问范围都被限定在包内,不能被外部访问,在本包使用的其它包的变量当然也不会放入本包的符号表。而our声明的变量可通过所谓的别名访问,因此能被放入符号表中。
1、 包标识符的访问
访问引用包中的标识符的方法是:$包名:符号名
没有my声明的变量声明缺省时属于 main 包,比如:
$x=1;
print $main::x;
输出:1
3、使用模块
模块是 Perl 里重复使用的基本单元。它是定义在一个以.pm结尾的同名文件中的包,可以通过以下2种方式使用模块:
use MODULE LIST;
use MODULE;
MODULE为模块名,LIST为符号列表。
1) requie
require 语句在运行时从其它文件(包括模块)装载定义,比如:
perl4-14.pl代码如下:
#perl4-14.pl
require "mydy.pl";#引用mydy.pl中的定义
print $x;
mydy.pl代码如下:
#mydy.pl
$x=1;
运行perl4-14.pl后,成功输出了mydy.pl中定义的$x值:1
2) use
use在编译时将把你需要的符号导进来,如果你不提供符号的LIST,将使用在模块的内部 @EXPORT 数组里命名的符号。
分享到:
相关推荐
#### 第一个Perl任务 - 通过读取文件、处理数据并输出结果来完成第一个任务。 #### 文件处理原则 - 使用文件句柄(如`$fh`)打开文件,使用`open`函数。 - 读取文件通常使用`<>`操作符或`readline`函数。 - 关闭...
标题中的"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等组件,这些组件...
4. **模块和CPAN**:CPAN(Comprehensive Perl Archive Network)是Perl模块的宝库,包含了数万个第三方模块,可以帮助扩展Perl的功能。学习如何使用CPAN和导入模块可以极大地提升开发效率。 5. **正则表达式**:...
`perl-5.16.3.tar.gz`是一个包含Perl 5.16.3源代码的压缩包文件,该版本发布于2013年,它是Perl发展历史中的一个重要里程碑。 Perl 5.16.3是Perl 5系列的一个稳定版本,提供了许多改进和新特性。在这个版本中,...
总之,Perl 5.8.6.811 for MSWin32-x86是一个功能强大、灵活的编程工具,尤其适合在Windows环境中进行文本处理、系统管理和自动化任务。通过熟练掌握Perl,开发者可以极大地提高工作效率,处理复杂的问题。
6. **Configure**:这是一个脚本,用于配置Perl的构建过程,允许用户根据目标系统的特性定制Perl的编译选项。 7. **makemaker**:Perl的Module::Build或ExtUtils::MakeMaker工具,用于帮助创建和构建Perl模块。 ...
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...
**Shell脚本入门** ...通过学习这三个脚本语言,你可以根据任务需求选择最合适的工具,无论是简单的系统管理任务,还是复杂的文本处理和数据分析,都能得心应手。记得在实践中不断巩固理论知识,提升编程技能。
- Perl5 是Perl语言的第五个主要版本,引入了许多新特性和改进,至今仍是最广泛使用的Perl版本。 2. **Emacs编辑器** - Emacs 是一个高度可定制的、全功能的文本编辑器,支持多种编程语言,并且具有内置的shell、...
Perl是一种强大的脚本编程语言,尤其在文本处理和系统管理任务方面表现突出。"perl常见编程100个实例"提供了丰富的示例,帮助初学者和有经验的开发者更好地理解和运用Perl语言。这些实例覆盖了Perl编程的多个关键...
Perl是一种强大的脚本编程语言,尤其在文本处理和系统管理任务方面表现卓越。"perl-tools"是一组专门针对Perl语言的实用工具,旨在提高Perl程序员的效率和代码质量。这个压缩包"perl-tools-master"很可能包含了多种...
1. **API 客户端**:Perl-stormpath 提供了一个客户端对象,用于与 Stormpath REST API 进行通信。这个客户端负责处理请求和响应,包括身份验证、错误处理和数据序列化。 2. **资源对象**:库中包含了各种 ...
此次第六版涵盖了最新的Perl 5.14版本的变化。 Perl能在绝大多数平台上完成几乎所有任务,不管是简单的修修补补,还是大型完备的网络应用。《Perl语言入门》从最基础的开始教起,然后逐渐深入,让你慢慢能够自行编写...
根据给定文件中的内容,我们可以总结出Perl编程语言中几个重要的知识点和实例: ### 1. 计算圆的周长 #### 练习2.12 **目标**: 编写一个Perl程序来计算半径为特定值的圆的周长,并允许用户输入半径值。 **代码...
根据提供的文件信息,我们可以推断出这是一本关于Perl编程语言的入门书籍——《Perl语言入门_第6版》的下载链接。以下是对该书可能包含的一些重要知识点的概述: ### Perl语言简介 Perl是一种高级、通用且解释型的...
- **perl5**:Perl的第五个主要版本,目前广泛使用的版本,区别于早期的Perl 4。 - **apache-kafka**:Apache Kafka的标识,表明这个项目是Apache软件基金会的一部分。 - **librdkafka**:这是一个C语言实现的Kafka...