perl学习笔记

1.多行注释

=pod 注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
=cut

=pod =cut 必须在行首

2.单双引号的区别
双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。
但是单引号可以定义多行字符串

3.Here 文档
Here文档又称作heredoc、hereis、here-字串或here-脚本,是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字串的方法。
使用概述:

(1)必须后接分号,否则编译通不过。
(2)END可以用任意其它字符代替,只需保证结束标识与开始标识一致。
(3)结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符。
(4)开始标识可以不带引号号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
(5)当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。

#!/usr/bin/perl
 
$a = 10;
$var = <<"EOF";
这是一个 Here 文档实例,使用双引号。
可以在这输如字符串和变量。
例如:a = $a
EOF
print "$var\n";
 
$var = <<'EOF';
这是一个 Here 文档实例,使用单引号。
例如:a = $a
EOF
print "$var\n";

输出结果为

这是一个 Here 文档实例,使用双引号。
可以在这输如字符串和变量。
例如:a = 10

这是一个 Here 文档实例,使用单引号。
例如:a = $a

4.perl变量不需要指定类型,但是也可以用use strict语句让所有变量需要强制类型声明

perl基本数据类型:标量、数组、哈希
标量声明 $
数组声明 @
哈希声明%

不同类型的变量可以使用相同的名字
字符串用标量来表示
数组索引从0开始,数组例子:@arr=(1,2,3),更方便的,用qw来定义,如@array = qw/这是 一个 数组/ 或qw(这是 一个 数组)
哈希是一个无序的key/value对的集合,可以用键作为下标来获取值,哈希例子:%h=(‘a’=>1,‘b’=>2)

5.整型
实际被当作特殊的浮点数对待
八进制以0开始,十六进制以0x开始

浮点数
浮点寄存器经常不能精确的储存浮点数,从而产生误差,需要特别注意

6.访问数组变量 $加下标

@ages=(23,45,22);
print "\$ages[0]=$ages[0]";

$ages[0]=23

访问哈希变量值 $加{key}

%data={'google',45,'taobao',40};
print "/$data{google}=$data{google}";

$data{google}=40

7.如果把数组赋给标量,那么将会返回数组元素的个数
8.标量连接

$str= "hello" . "world";
print "$str";

helloworld

9.特殊字符

__FILE__     #当前执行脚本的文件名
__LINE__    #当前执行脚本的行数
__PACKAGE    #当前执行脚本的包名

注:两个下划线
放在字符串里面就失效了

10.转义字符

\n 换行
\r 回车
\t 水平制表符
\f 换页符
\b 退格
\a 系统响铃
\e ESC (ASCⅡ 编码的转义字符)
\007 任何八进制的ASCⅡ(此例子007表示系统响铃)
\x7f 任何十六进制的ASCⅡ(此例子7f表示删除键的控制代码)
\cC 控制符,也就是control键的代码(此例子此表示同时按下ctrl键和C键的返回码)
\l 将下个字符转为小写
\L 将到\E为止的所有字符转为小写
\u 将下个字符转为大写
\U 将到\E为止的所有字符转为大写
\Q 将到\E为止的非单词(non-word)字符加上反斜线
\E 结束\L、\U、\Q

11.数组 起始值+…+结束值

@var_10=(1..10);
print "@var_10";

1 2 3 4 5 6 7 8 9 10

数组长度返回的是数组物理大小,而不是元素的个数

@array = (1,2,3);
$array[50] = 4;
$size = @array;
$max_index = $#array;
print "数组大小:  $size\n";
print "最大索引: $max_index\n";

数组大小:  51
最大索引: 50

从输出的结果可以看出,数组元素只有四个,但是数组大小为 51

12.添加和删除数组元素
push (@array,list) 将列表的值放到数组的末尾
unshift(@array,list) 将列表的值放到数组的开头
pop (@array) 删除数组最后一个值,并返回它
shift (@array)删除数组第一个值,并返回它,数组的索引值也依次减一

13.切割数组
@sites2=@sites[3,4,5];

替换数组元素

@nums = (1..20);
splice(@nums, 5, 5, 21..25);  
#参数:要替换的数组@array,起始位置OFFSET,替换元素的个数LENGTH,替换元素列表LIST
print "替换后 - @nums\n";

替换后 - 1 2 3 4 5 21 22 23 24 25 11 12 13 14 15 16 17 18 19 20

14.将字符串转化为数组 split函数
数组转化为字符串 join函数

$var_test = "runoob";
$var_string = "www-runoob-com";
$var_names = "google,taobao,runoob,weibo";
@test = split('', $var_test);   参数:分隔符,数组名
@string = split('-', $var_string);
@names  = split(',', $var_names);

$string1 = join( '-', @string );
$string2 = join( ',', @names );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值