genesis脚本编程教材PERL

2026/4/23 18:06:15

性共享内存应用以及极度大的应用。

Perl语言的长处:

l 强大的正则表达式和模式匹配功能(接近理想的正则表达式语言)

l 复杂灵活的数据结构(Array of Array, Array of Hash,Hash of Array, Hash of Hash等)

l Unicode支持(相对AWK与C)

其不足是:

l 动态类型语言,不是很可靠

l 自然语言,是优点也是缺陷,使得Perl语言代码可能晦涩难懂;

l 智能语言,是优点也产生不足:根据上下文解释编程者之意,可能产生臆断;也因此产生种种编程陷阱。

l 不是很优美。多种方法做事,有时会让编程者无所适从。

l 性能问题。Perl灵活的数据结构和处理性能通常不是很高(相对C/C++),若需要高性能的处理有时需要使用其它语言重写。

Perl语言的学习曲线浅而长。只要看看《Learning Perl》,就可以编写简单的Perl程序了,然而要深入掌握Perl,要使用Perl的复杂数据结构,进行面向对象编程、多线程编程则不是那么容易的事,需要很长的时间学习和实践。 概览

Perl有以下几种数据类型:标量(Scalars)、 数组(Arrays)、关联数组(Associative Arrays,或称Hash)、子程序(Subroutine)和Typeglob(*标识,指所有以上几种类型)。这些类型都有不同的符号标识。这些类型的说明如下: Type

Character Example Is a Name for Scalar $

$cents

An individual value(number or string) Array

@ @large

A list of values, keyed by number Hash %

%interest

A group of values, keyed by string

Subroutine & &how

A callable chunk of Perl code

Typeglob *

*struck

Everything named stuck

(以上引自《Programming Perl》)

关于Perl的类型可以做如下说明:

l 不同的数据类型不同的命名空间,所以三种的标识符可以相同但互不干扰,即$array, @array,%array是完全不同的三个变量。

l Perl的数据类型是大小写敏感的;直接使用,不用声明(这一点可能成为缺陷,可以使用use strict语句强制必须声明)

l 引用(references)是Perl 5引进的一种特殊的标量。

l 变量的命名以下划线或字母开头,可以是任意长度(1-251)。

l 文件句柄(Filehandle)指给一个文件、设备、Socket或管道的名称。

l 子程序相对其它类型是动词(其余为名词),较为特别,将用特别的一章详细说明

命名空间(Namespaces) Perl有两种命名空间,分别是符号表(symbol tables,也称为包(package))和词汇范围(lexical scopes,可以理解为局部空间)。符号表是存储全局变量的全局关联数组(包括存储其它关联数组),词汇范围是无名的空间,不存在于任何符号表中,而是与你程序中的一段代码块相关联。它们包含只对该代码块可见的变量。以our定义的变量存在符号表中,又称为全局

变量或包变量(它们对包来说名义上是私有的,但是由于包本身是全局的,所以又是全局的),以my定义的变量存储在词汇范围中,也称为局部变量。

在任一命名空间中,任一变量类型都有其子命名空间(由其前面的字符决定),用户可以给标量、数组、关联数组、文件句柄、子程序名、标号起相同的名字。Perl的保留字也不会与变量名冲突。

Perl做名字查找的次序如下:

l 查找最小一级的包含的程序块,看变量是否在同一块中声明(my或者our)

l 查找更高一级的包含程序块进行查找

l 查找整个编译单元看是否有声明

l 如果没有找到,Perl将假定变量是包变量

l 如果没有包定义,Perl将在无名的最高层包(main)中查找,$::bert等同于$main::bert

除了用my与our声明变量外,Perl中还有一种local的声明方式,注意local不是声明一个局部变量,而是使全局变量局部话,如果声明时未赋值,则所有的标量被初始化为undef, 所有的数组与关联数组被初始化为()。其使用方式比如:

if ($sw eq ‘-v’) {

local @ARGV = @ARGV;

unshift @ARGV, ‘echo’;

system @ARGV;

}

又如当需要输出CSV格式的文件时可以使用local $, = “,”; local $/=”\\n”; 免得每次print都得写许多”,”和最后的”\\n”;

标量(Scalars)

标量是一个字符串、数值或者指向某类型的引用。

Perl的数值常量可以如下使用:

$x = 12345; #整数

$x = 12345.67; #浮点数

$x = 6.02e23; #科学计数法

$x = 4_294_967_296; #因为,是分隔符,所以4,294,967,296不能成立,Perl用_代替

$x = 0377; #八进制

$x = 0xffff; #十六进制

$x = 0b1100_0000; #二进制

Perl的字符串常量通常由单引号或双引号括起来。双引号支持变量和转义字符序列替换;而单引号只支持两个转义字符 \\’和\\”。双引号支持的转义字符如下:

Code Meaning \\n

Newline (usually LF) \\r

Carriage return (usually CR) \\t

Horizontal tab \\f

Form feed \\b

Backspace \\a

Alert(bell) \\e

ESC character \\033

ESC in octal


genesis脚本编程教材PERL.doc 将本文的Word文档下载到电脑
搜索更多关于: genesis脚本编程教材PERL 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219