perl基础教程,perl入门

perl基础教程,perl入门,perl 简明教程 perl教程集合

什么是perl,它有什么用途?Perl最初的设计者意图是和字符打交道,它80%的长处都是和字符打交道。当然也可以用很多其他的。现在很多网页也是perl,通常需要CGI环境。

参考:http://shouce.jb51.net/perl5/

网站配置:https://www.jb51.net/article/74005.htm

Perl的基本语法,https://www.jb51.net/shouce/Perl.htm

什么是perl,它有什么用途?Perl最初的设计者意图是和字符打交道,它80%的长处都是和字符打交道。当然也可以用很多其他的。现在很多网页也是perl的,而且通常需要CGI环境,比如$char=~/language/,意思是找到一个包含“语言”这个词的字符串。它还可以做unix和linux系统管理,文件内容处理(基于awk和sed工具),以及许多其他你想做的事情。

一、perl环境配置

1.获取perl

Perl通常位于/usr/local/bin/perl或/usr/bin/perl中。你可以在网上通过匿名FTP免费获取,比如ftp://prep.ai.mit.edu/pub/gnu/perl-5.004.tar.gz.

2.安装过程是:

(1)减压:

$冈zip perl-5.004.tar.gz

$ tar xvf-perl-5.004.tar.gz

(2)编制:

$make makefile

(3)安置:

将编译生成的可执行文件复制到可执行文件通常所在的目录,例如:

$copy编译后的可执行文件/usr/local/bin/perl

3.操作

用文本编辑器编辑您的Perl程序,并添加可执行的属性:$chmod x program来执行它:$。/程序。如果系统提示:'/usr/local/bin/perl not found ',说明你没有安装成功。请重新安装。

注意:你程序的第一行必须是#!/usr/local/bin/perl(perl所在的位置)。

4注意:

注释的方法是在语句的开头使用#字符,例如:

#这一行是注释

注意:建议经常使用注释,让你的程序易于阅读,这是一个很好的编程习惯。

二、常量、变量等问题

1.单引号和双引号

双引号内的字符串支持简单的变量替换,例如:$ text='此文本包含数字$ NUMBER。';

双引号内的字符串支持转义字符。

单引号字符串和双引号字符串有两个区别。一是没有变量替换功能,二是反斜杠不支持转义字符。

2.重复和连接

重复:打印' t' x 5(将输出5个t,注意:其中x是英文字母小写x)

Join: $a.='bc '(相当于join equals)

3.简单的变量、数组、列表

简单变量:用$声明,如:$ a=' hello

数组:用@声明,如:@arr=('a ',' b ',' c ');

List:list是包含在括号中的一系列值,可以是任意数值,也可以为空,比如:(1,5.3,' hello ',2),空list:()

三、文件操作

1.打开文件:如open(我的文件,' file1') || die('打不开文件');MYFILE是声明的文件句柄,file1是文件名/文件路径。整行代码的意思是:如果打开失败,输出‘无法打开文件’;

关闭文件:文件操作完成后使用close(my file);关闭文件。

阅读文件

语句$ line=MYFILE从文件中读取一行数据,将其存储在简单变量$line中,并将文件指针向后移动一行。STDIN是一个标准的输入文件,通常是键盘输入,不需要打开。

Statement @ array=MYFILE将文件的所有内容读入数组@array,文件的每一行(包括回车)都是@array的一个元素。

#!/usr/bin/perl

open(MYFILE,' 1 . txt ');

@ arr=MYFILE

print @ arr

写文件

形式是:

open(OUTFILE,' OUTFILE ');

print OUTFILE('这里是输出行。\ n’);

注意:STDOUT和STDERR是标准输出和标准错误文件,通常是屏幕,不需要打开。

4.判断文件状态。

1.文件测试操作符

语法是:-op expr,例如:

if (-e '/path/file1') {

打印STDERR('文件file1存在。\ n’);

}

文件测试操作符

操作员

形容

-乙

是块设备吗?

-丙

是字符设备吗?

-d

它是一个目录吗?

-e

存在吗?

-f

是正常文件吗?

-g

setgid位设置了吗?

-k

粘性位设置了吗?

-我

是符号链接吗?

表示“具有…性质的”

你拥有这份文件吗?

-p

是管道吗?

-r

它可读吗

构成名词复数

不是空的吗?

相当于-ED

指示终端是否

-你

setuid位设置了吗?

-w

可写吗?

加在以-u结尾的法语词源的名词之后构成复数

是否可执行?

-z

这是一个空文件吗

构成动植物的古名或拉丁化的现代名

自从上次访问以来有多长时间了

-乙

是二进制文件吗?

-丙

自上次访问文件的信息节点以来,已经过了多长时间?

-M

距离上次修改有多久了?

表示“具有…性质的”

是不是只有“真正的用户”拥有

-R

只有“真正的用户”才可读吗

构成名词复数

是插座吗

相当于-ED

它是一个文本文件吗?

-W

只有“真实用户”是可写的吗?

加在以-u结尾的法语词源的名词之后构成复数

它只能被“真正的用户”执行吗

注:“真实用户”是指登录时指定的userID。与当前进程用户id相比,suid命令可以改变有效的用户ID。

示例:

除非(open(INFILE,' INFILE '){

无法打开文件中的die('输入文件。\ n’);

}

if (-e 'outfile') {

die('输出文件outfile已经存在。\ n’);

}

除非(open(OUTFILE,' OUTFILE '){

无法打开die('输出文件outfile。\ n’);

}

等于

open(INFILE,' INFILE ')!(-e 'outfile ')

open(OUTFILE,' outfile') || die('无法打开文件\ n ');

四、模式匹配:

1.概念:模式是指字符串中特定的字符序列,由反斜杠:/def/包含,即模式def。其用法如下:结合split函数将一个字符串按照一定的模式分割成多个单词:@array=split(//,$ line);

2.匹配运算符=~,~

=~检查匹配是否成功:$ result=$ var=~/ABC/;如果在字符串中找到该模式,它将返回一个非零值,即true如果不匹配,则返回0,即false。~事实正好相反。

五、控制结构

(1)条件判断:if()else if()else();

(2)流通:

1.while循环

2.直到循环

3.for循环

4.列表中每个元素的foreach循环(数组)

open(MYFILE,' 1 . txt ');

@ arr=MYFILE

foreach $str (@arr){

打印$ str

}

5.做循环

6.循环控制:出口循环是最后一个,与C中的break作用相同;将下一个循环执行为next,与C中的continue效果相同;PERL特有的一个命令是redo,就是重复这个循环,也就是循环变量保持不变,回到循环起点。但是,应该注意,重做命令在do循环中不起作用。

7.传统的goto语句:goto标签;

(3)单线条件

语法是语句关键字condexpr。其中关键字可以是if、never、while或until,例如:

打印('这是零。\ n ')if($ var==0);

打印('这是零。\n ')除非(var!=0);

打印('还不为零。\ n ')while($ var-0);

打印('还不为零。\n ')直到($ var-==0);

条件判断虽然写在后面,但是先执行。

不及物动词子程序

(1)定义

子程序是执行特殊任务的一段单独的代码,它可以减少重复代码并使程序可读。在PERL中,子例程可以出现在程序的任何地方。该方法定义为:

子程序{

声明;

}

(2)打电话

方法如下:用调用

subname

.

sub subname{

.

}

七、文件系统:与unix密切相关,参考:http://shouce.jb51.net/perl5/perl11.htm

其他:

Pipeline:可以使用前面执行的结果作为下面的参数,比如

环境| grep编辑器

您可以删除环境变量中EDITOR的值

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: