perl-基础整理

不可认识就不可认识吧!斯坦刘夫斯基总能说出一些具有哲理的话:当我沉默着的时候,我觉得充实,我将开口,同时感到空虚。

虽然这些东西之前学了,而且有写笔记,但是还是加深点理解吧。

变量

私有变量声明使用:my

全局变量声明使用:our


字符串

字符串引用

  1. "" 等同qq//
  2. ''等同 q//
1
2
3
4
5
eg:
"declare";
'declare';
q/declare/;
qq/declare/;
  1. qw可以去除所有引号,逗号。使用空白分隔
1
2
("a",2,3,"b")
qw/a 2 3 b/

字符串长度

length()

1
2
3
eg:
$a = q/have a nice day/;
length($a);

大小写转换

lc():lower case

uc():upper case

1
2
3
4
eg:
$a=q/I Have A Fridend/;
lc($a);
uc($a);

位置索引

指定起始位置,第一次找到的位置

index():从左往右

rindex():从右到左

1
2
3
4
5
eg:
$string = "in a word";
$substring = "A";
index($string,$substring);
rindex($string,$substring);

字符串提取

substr()

1
2
3
4
eg:
$a = "abstract some word";
substr($a,0,5); # 索引从0开始
substr($a,-5); #可以负向提取

字符串替换

substr()

1
2
$a = "abstract some word";
substr($a,0,5,"hehe");

字符串加密

crypt()

1
2
3
eg:
password = 'encrypt data';
crypt($password);

字符串反转

reverse()

1
2
3
eg:
$a = "my friends";
reverse($a);

字符串连接

使用.操作符,在perl6中改为~

1
2
'a'.'b'
'a'~'b'

重复操作符

x

1
'a'x4    #结果为'aaaa'

字符串格式化

sprintf()

去除换行符

chomp()常用于去除交互输入的换行符\n

1
chomp my @array = <STDIN>

运算符

计算

+-*/%(取余),**乘方

如果将数字转换为二进制,将支持跟多的二进制操作bit wise operator

&(and),|(or),~(not),>>(shift right),<<

比较

数字

==!=<=><><=>=

其中<=>操作符作用挺大,它能返回三种情况,用于排序中

$a > $b #返回1

$a = $b #返回0

$a < $b #返回-1

1
2
3
4
5
@array = qw/1 3 11 21 14 5 7/;
@result = sort{$a <=> $b} @array;
foreach (@result){
print $_,"\n";
}

字符串

eq,ne,cmp,lt,gt,le,ge

其中cmp的作用同上面的<=>,不过这个用来比较字符,用于排序中。


逻辑操作符

&&(and),||(or),!(not) 常用于控制语法中(if ,while,given)等