位置: 编程技术 - 正文
推荐整理分享perl 简明教程 perl教程集合(perl ne),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:perl视频教程全57讲,perl入门教程,perl怎么用,perl ne,perl怎么用,perl怎么用,perl快速入门,perl入门教程,内容如对您有帮助,希望把文章链接给更多的朋友!
参考: 字符的,%的强项是处理字符,当然其它的很多都可以。现在很多网页也是用perl的,通常需要CGI环境,比如 $char =~ /语言/ ,意思是查找含有“语言”这两个字的字符串。它还能做unix和linux系统管理,文件内容处理(基于awk和sed等工具的功能),其他好多你想做的事。
一、perl环境配置
1.获取perl Perl通常位于/usr/local/bin/perl或/usr/bin/perl中。你可以在Internet用匿名FTP免费得到它,如 (1)解压: $gunzip perl-5..tar.gz $tar xvf - <perl-5..tar.gz (2)编译: $make makefile (3)放置: 将编译生成的可执行文件拷贝到可执行文件通常所在目录,如: $copy <compiled excutable file> /usr/local/bin/perl
3.运行 用文本编辑器编辑好你的Perl程序,加上可执行属性:$chmod +x <program>就可以执行了:$./<program>。如果系统提示:"/usr/local/bin/perl not found",则说明你没有安装成功,请重新安装。注:你的程序的第一行必须为#!/usr/local/bin/perl(perl所在位置)。
4注释: 注释的方法为在语句的开头用字符#,如: # this line is a comment 注:建议经常使用注释使你的程序易读,这是好的编程习惯。
二、常量、变量等问题
1.单引号与双引号 双引号内的字符串中支持简单变量替换 如:$text = "This text contains the number $number."; 双引号内的字符串中支持转义字符 单引号字符串与双引号字符串有两个区别,一是没有变量替换功能,二是反斜线不支持转义字符。2.重复和联结重复:print "t" x 5 (会输出5个t,注意:其中x为英文字母小写x)联结:$a.="bc" (相当于连等于)3.简单变量、数组、列表简单变量:用$声明,如:$a="hello";数组:用@声明,如:@arr=('a','b','c');列表:列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:()
三、文件操作
1.打开文件:如open (MYFILE, "file1") || die ("Could not open file");MYFILE为声明的文件句柄,file1为文件名/文件路径,整行代码意为:如果打开失败,则输出"Could not open file"; 关闭文件:当文件操作完毕后,用close(MYFILE); 关闭文件。2.读文件 语句$line = <MYFILE>;从文件中读取一行数据存储到简单变量$line中并把文件指针向后移动一行。<STDIN>为标准输入文件,通常为键盘输入,不需要打开。 语句@array = <MYFILE>;把文件的全部内容读入数组@array,文件的每一行(含回车符)为@array的一个元素。
3.写文件 形式为: open(OUTFILE, ">outfile"); print OUTFILE ("Here is an output line.n"); 注:STDOUT、STDERR为标准输出和标准错误文件,通常为屏幕,且不需要打开。4.判断文件状态
1、文件测试操作符 语法为:-op expr,如: if (-e "/path/file1") { print STDERR ("File file1 exists.n"); }
文件测试操作符
操作符 描述 -b 是否为块设备 -c 是否为字符设备 -d 是否为目录 -e 是否存在 -f 是否为普通文件 -g 是否设置了setgid位 -k 是否设置了sticky位 -l 是否为符号链接 -o 是否拥有该文件 -p 是否为管道 -r 是否可读 -s 是否非空 -t 是否表示终端 -u 是否设置了setuid位 -w 是否可写 -x 是否可执行 -z 是否为空文件 -A 距上次访问多长时间 -B 是否为二进制文件 -C 距上次访问文件的inode多长时间 -M 距上次修改多长时间 -O 是否只为“真正的用户”所拥有 -R 是否只有“真正的用户”可读 -S 是否为socket -T 是否为文本文件 -W 是否只有"真正的用户"可写 -X 是否只有"真正的用户"可执行 注:“真正的用户”指登录时指定的userid,与当前进程用户ID相对,命令suid可以改变有效用户ID。
例: unless (open(INFILE, "infile")) { die ("Input file infile cannot be opened.n"); } if (-e "outfile") { die ("Output file outfile already exists.n"); } unless (open(OUTFILE, ">outfile")) { die ("Output file outfile cannot be opened.n"); } 等价于 open(INFILE, "infile") && !(-e "outfile") && open(OUTFILE, ">outfile") || die("Cannot open filesn");
四、模式匹配:
1.概念:模式指在字符串中寻找的特定序列的字符,由反斜线包含:/def/即模式def。其用法如结合函数split将字符串用某模式分成多个单词:@array = split(/ /, $line);2.匹配操作符 =~、!~ =~检验匹配是否成功:$result = $var =~ /abc/;若在该字符串中找到了该模式,则返回非零值,即true,不匹配则返回0,即false。!~则相反。
五、控制结构(1)、条件判断:if()elseif()else();(2)、循环: 1、while循环 2、until循环 3、for循环 4、针对列表(数组)每个元素的foreach循环
5、do循环 6、循环控制:退出循环为last,与C中的break作用相同;执行下一个循环为next,与C中的continue作用相同;PERL特有的一个命令是redo,其含义是重复此次循环,即循环变量不变,回到循环起始点,但要注意,redo命令在do循环中不起作用。 7、传统的goto语句:goto label;(3)、单行条件 语法为statement keyword condexpr。其中keyword可为if、unless、while或until,如: print ("This is zero.n") if ($var == 0); print ("This is zero.n") unless ($var != 0); print ("Not zero yet.n") while ($var-- > 0); print ("Not zero yet.n") until ($var-- == 0); 虽然条件判断写在后面,但却是先执行的。
六、子程序(1)、定义 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。PERL中,子程序可以出现在程序的任何地方。定义方法为: sub subroutine{ statements; }(2)、调用 调用方法如下:用&调用 &subname; ... sub subname{ ... }七、文件系统:与unix紧密相关,参考: | grep EDITOR就可以删选出环境变量中EDITOR的值
使用Perl生成随机密码 可以通过参数控制生成密码中包括的字符种类#!/usr/bin/perlusestrict;usewarnings;useGetopt::Std;subshow_help{print"Useage:n";print"newp-aAnsln";print"-attthepasswordcontainslowerca
Perl与JS的对比分析(数组、哈希) 上一篇列出了Perl中定义数组,对象的方式与JS的异同。这里继续补充数组,哈希的相关操作。一、数组可以对数组进行增删,插入。与JS不同的是这些函
Perl 批量添加Copyright版权信息 对所有输入文件,如果没有版权信息则加上版权信息,否则什么都不做,并对原文件以.bak结尾备份。开始我使用如下程序(尝试前千万先备份输入的文
标签: perl ne
本文链接地址:https://www.jiuchutong.com/biancheng/368757.html 转载请保留说明!友情链接: 武汉网站建设