Learning Path
浏览 Perl 相关教程与章节。
主流编程语言、数据结构、设计模式、正则与基础算法。
教程
48
Perl 循环 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的流程图: 注意,数字 0, 字符串 '0' 、 '' , 空 list () , 和 undef 为 false ,其他值均为 ..
Perl 循环嵌套 Perl 循环 Perl 语言允许在一个循环内使用另一个循环,下面演示几个实例来说明这个概念。 语法 嵌套 for 循环语句的语法: [mycode3 type='perl'] for ( init; condition; increment ){ for ( init; condition; increment ){ statement(s); } st..
Perl next 语句 Perl 循环 Perl next 语句用于停止执行从next语句的下一语句开始到循环体结束标识符之间的语句,转去执行continue语句块,然后再返回到循环体的起始处开始执行下一次循环。 语法 语法格式如下所示: next [ LABEL ]; 其中 LABEL 是可选的,如果没有指定 LABEL,next 语句将返回到循环体的起始处开始执行下一次循环。 实例 [mycode3 type=..
Perl 面向对象 Perl 中有两种不同地面向对象编程的实现: 一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储了所有的实例属性。 二是基于数组的方式,在定义一个类的时候,我们将为每一个实例属性创建一个数组,而每一个对象实例的实质就是一个指向这些数组中某一行索引的引用。在这些数组中,存储着所有的实例属性。 面向对象基础概念 面向对象有很多基础概念,这里我们接收三个:对象、类和方法..
Perl 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,如: 3+2=5。 Perl 语言内置了丰富的运算符,我们来看下常用的几种: 算术运算符 比较运算符 逻辑运算符 赋值运算符 位运算符 引号运算符 其他运算符 运算符优先级 算术运算符 表格实例中我们设置变量 $a 为 10, $b 为 20。 运算符 描述 实例 + 加法运算 $a + $b 结果为 30 - 减法运算 $a - $b 结果..
Perl 包和模块 Perl 中每个包有一个单独的符号表,定义语法为: package mypack; 此语句定义一个名为 mypack 的包,在此后定义的所有变量和子程序的名字都存贮在该包关联的符号表中,直到遇到另一个 package 语句为止。 每个符号表有其自己的一组变量、子程序名,各组名字是不相关的,因此可以在不同的包中使用相同的变量名,而代表的是不同的变量。 从一个包中访问另外一个包的变量,可通过“ 包名 +..
Perl 进程管理 Perl 中你可以以不同的方法来创建进程。 本教程将讨论一些进程的管理方法。 你可以使用特殊变量 $$ 或 $PROCESS_ID 来获取进程 ID。 %ENV 哈希存放了父进程,也就是shell中的环境变量,在Perl中可以修改这些变量。 exit() 通常用于退出子进程,主进程在子进程全部退出后再退出。 所有打开的句柄会在子程序中被 dup() 函数复制, 所有关闭进程所有句柄不会影响其他进程 。 反引号..
Perl redo 语句 Perl 循环 Perl redo 语句直接转到循环体的第一行开始重复执行本次循环,redo语句之后的语句不再执行,continue语句块也不再执行。 continue 语句可用在 while 和 foreach 循环中。 语法 语法格式如下所示: redo [LABEL] 其中 LABEL 是可选的。 带标号修饰符LABEL的redo语句表示把循环控制流程直接转到与标号修饰符LABEL相关联的语..
Perl 引用 引用就是指针,Perl 引用是一个标量类型可以指向变量、数组、哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方。 创建引用 定义变量的时候,在变量名前面加个\,就得到了这个变量的一个引用,比如: $scalarref = \$foo; # 标量变量引用 $arrayref = \@ARGV; # 列表的引用 $hashref = \%ENV; # 哈希的引用 $code..
Perl 正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 Perl语言的正则表达式功能非常强大,基本上是常用语言中最强大的,很多语言设计正则式支持的时候都参考Perl的正则表达式。 Perl的正则表达式的三种形式,分别是匹配,替换和转化: 匹配:m//(还可以简写为//,略去m) 替换:s/// ..
Perl 标量 标量是一个简单的数据单元。 标量可以是一个整数,浮点数,字符,字符串,段落或者一个完整的网页。 以下实例演示了标量的简单应用: 实例 [mycode3 type='perl'] #!/usr/bin/perl $age = 20; # 整数赋值 $name = 'Runoob'; # 字符串 $salary = 130.50; # 浮点..
Perl 发送邮件 如果你的程序在 Linux/Unix 系统上运行,你就可以在 Perl 中使用 sendmail 工具来发送邮件。 以下是一个简单的脚本实例用于发送邮件: 实例 [mycode3 type='perl'] #!/usr/bin/perl # 接收邮箱,这里我设置为我的 QQ 邮箱,你需要修改它为你自己的邮箱 $to = '[email protected]'; #发送者..
Perl Socket 编程 Socket又称'套接字',应用程序通常通过'套接字'向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。 本章节我们为大家接收 Perl 语言中如何使用 Socket 服务。 创建服务端 使用 socket 函数来创建 socket服务。 使用 bind 函数绑定端口。 使用 listen 函数监听端口。 使用 accept 函数接收..
Perl 特殊变量 Perl 语言中定义了一些特殊的变量,通常以 $, @, 或 % 作为前缀,例如:$_。 很多特殊的变量有一个很长的英文名,操作系统变量 $! 可以写为 $OS_ERROR。 如果你想使用英文名的特殊变量需要在程序头部添加 use English;。这样就可以使用具有描述性的英文特殊变量。 最常用的特殊变量为 $_,该变量包含了默认输入和模式匹配内容。实例如下: 实例 [mycode3 type=..
Perl 子程序(函数) Perl 子程序(subroutine)也就是用户定义的函数。 Perl 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。 Perl 子程序是一段封装了一系列操作或计算的代码块,它可以被反复调用,以便在程序中重复使用。Perl 子程序有助于模块化程序,使得代码更易于理解、维护和重用。 Perl 子程序可以出现在程序的任何地方,语法格式如下: sub subroutine{ ..
Perl switch 语句 Perl 条件语句 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 switch case 执行是基于 Switch 模块, Switch 模块默认是没有安装的。 安装 Switch.pm 模块 使用 CPAN 安装 打开命令窗口,输入 cpan 命令,然后输入 install Switch 命令:..
Perl 基础语法 Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性,语法与这些语言有些类似,也有自己的特点。 Perl 程序由声明与语句组成,程序自上而下执行,包含了循环,条件控制,每个语句以分号 ; 结束。 Perl 语言没有严格的格式规范,你可以根据自己喜欢的风格来缩进。 第一个 perl 程序 交互式编程 你可以在命令行中使用 -e 选项来输入语句来执行代码,实例如下: $ perl -e &..
Perl 教程 Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 “实用报表提取语言”。 Perl 是高级、通用、直译式、动态的程序语言。 Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。 Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。 Perl 最重要的特性是Perl内部集成了正则..
Perl UNLESS...ELSE 语句 Perl 条件语句 一个 unless 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 true 时执行。 语法 语法格式如下所示: unless(boolean_expression){ # 在布尔表达式 boolean_expression 为 false 执行 }else{ # 在布尔表达式 boolean_expression 为 true..
Perl UNLESS...ELSIF 语句 Perl 条件语句 一个 unless 语句后可跟一个可选的 elsif 语句,然后再跟另一个 else 语句。 这种条件判断语句在多个条件的情况下非常有用。 在使用 unless , elsif , else 语句时你需要注意以下几点。 unless 语句后可以跟上 0 个 或 1 个 else 语句,但是 elsif 后面必须有 else 语句。 unless 语句后可以跟上 ..
Perl UNLESS 语句 Perl 条件语句 一个 unless 语句由一个布尔表达式后跟一个或多个语句组成。 语法 语法格式如下所示: unless(boolean_expression){ # 在布尔表达式 boolean_expression 为 false 执行 } 如果布尔表达式 boolean_expression为 false,则 if 语句内的代码块将被执行。如果布尔表达式为 true,则 if..
Perl until 循环 Perl 循环 until 语句在给定条件为 false 时,重复执行语句或语句组。 until 可译为“除非”。 语法 语法格式如下所示: until(condition) { statement(s); } 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当条件为 false 时执行循环。 当条件为 true..
Perl 变量 变量是存储在内存中的数据,创建一个变量即会在内存上开辟一个空间。 解释器会根据变量的类型来决定其在内存中的存储空间,因此你可以为变量分配不同的数据类型,如整型、浮点型、字符串等。 上一章节中我们已经为大家介绍了Perl的三个基本的数据类型:标量、数组、哈希。 标量 $ 开始, 如$a $b 是两个标量。 数组 @ 开始 , 如 @a @b 是两个数组。 哈希 % 开始 , %a %b 是两个哈希。 Perl 为每个..
Perl while 循环 Perl 循环 while 语句在给定条件为 true 时,重复执行语句或语句组。循环主体执行之前会先测试条件。 语法 语法格式如下所示: while(condition) { statement(s); } 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当条件为 true 时执行循环。 当条件为 false..