perl基础语法
单引号 ' ' | 完全值白的翻译引号里全部的内容 |
双引号 " " | 可以识别引号的变量和反义字符 |
反引号 ` ` | 将引号里的内容当成命令命令来执行 |
eg.
单引号
双引号
反引号:
逻辑操作符
|| , or | 或 |
&& , and | 与 |
! , not | 非 |
xor | a xor b =(a' and b) or (a and b') (a' = not a) |
字符串操作
操作符 | 操作符含义 |
. | 字符串拼接相连 |
x | 字符串重复复制 |
.= | 字符串拼接相连后赋值 |
字符串常用函数
length($string) | 求出$string 的长度 | $size=length($string); |
substr($string ,offset,length) | 求出字符串$string 的子字符串 offset代表起始字符的位置,负数的话,就会从字符串右边开始指定字符 length代表长度,省略的话则是从起始位置到最后一个 | $s=substr("perl5",2,2) 结果: rl |
index($string,$substring,position) | 返回所要寻找的字符$substring在字符串$string 中的位置, 如果找不到返回 -1 $subutring 是 要寻找的字符 position代表从奶歌位置开始找,省略则是从头开始 | $s=index("perl5","r",2) 结果:2 |
数组常用的函数
数组用@符号表示eg: @arr("a","b")
语法 | 说明 | 示例 |
scalar(@array) | 返回数组的元素个数 | $num=scalar(@arr); #$num=2; |
reverse(@array) | 将数组@array中的元素由后到前重新排列 | @arr=(1,2,3,4); @arr=reverse(@arr); #@arr=(4,3,2,1) |
sort[{$a<=>$b}](@array) | 将数组@array中的元素按ASCII码顺序由小到大排序.加上{$a<=>$b}之后按数字大小排序 | @arr=(21,1,2,12); @arr=sort(@arr); #@arr=(1,12,2,21) @arr=sort{$a<=>$b}(@arr); #@arr=(1,2,12,21) |
pop(@array) | 将数组的最后一个元素删除,并将删除的元素返回 | @arr=("a","b"); $rm =pop(@arr); #@arr=("a"),$rm="b" |
push(@array,$newelement/@newarray) | 在数组@arrayde 的最后加上一个新元素或者新数组 | @arr=("a","b"); push(@arr,"c") #@arr=("a","b","c") |
shift(@array) | 将数组@array的第一个元素删除,并将删除的元素返回 | 与pop相似 |
unshift(@array,$newelement/@newarray) | 在数组最前面加上新元素或新数组 | 与push相似 |
join($string,@array) | 用指定字符$string将数组@array中的元素连接成字符串,并将改字符串作为结果返回 | @arr=("a","b","c"); $get=join(":",@arr); #$get="a:b:c" |
split(/pattern/,$string) | 把字符串$string 按照pattern进行分割,并把结果放入数组 | $seq=""15:32:54"; @arr=split(/:/,$seq); #@arr=("15","32","54") |
if for 语句
特殊 针对数组:
(for循环)
foreach(@array){
........
}
$_ 代表本轮循环中抓取的当前元素
eg:判断奇偶
foreach(@a){
if ($_ % 2==0){
print .....
}
else{
print .....
}
}
文件读入写出
读入:
open(FH,"read.txt"); 打开当前路径中的read.txt文件。FH为一个文件读写事件的标识,可自定义
@get=<FH>; 将读取到的内容存入数组中,根据"\n"分割,即一行一个元素。
close FH; 读取结束,关闭文件标识FH
写出:
open(FH,">write.txt");打开文件写入,">"代表写出,且文件中原有内容将被覆盖。
print FH "hello wrold!\n";"print FH" 代表将双引号的内容写出到文件,而非输出到屏幕,=。
close FH;关闭
续写:
open(FH ,">>write.txt");
print FH "hello wrold!\n";
close FH;
屏幕输入:
print "你的名字?\n";
$name =<STDIN>; 通过屏幕输入赋值 输入完成回车
chomp($name); 用于去掉输入内容最后的回车
print $naem ;打印