赞
踩
标量 $ 开始, 如$a $b 是两个标量。
数组 @ 开始 , 如 @a @b 是两个数组。
哈希 % 开始 , %a %b 是两个哈希。
环境变量$ENV{'XX'}
可以是一个整数,浮点数,字符,字符串,段落或者一个完整的网页。
1) 单引号
$string = '
菜鸟教程
—— 学的不仅是技术,更是梦想!
';
2) here doc
print <<EOF;
菜鸟教程
—— 学的不仅是技术,更是梦想!
EOF
__FILE__, __LINE__, 和 __PACKAGE__ 分别表示当前执行脚本的文件名,行号,包名。
一个以 v 开头,后面跟着一个或多个用句点分隔的整数,会被当作一个字串文本。
当你想为每个字符 直接声明其数字值时,v-字串提供了一种更清晰的构造这类字串的方法
实例
#!/usr/bin/perl
$smile = v9786;
$foo = v102.111.111;
$martin = v77.97.114.116.105.110;
print "smile = $smile\n";
print "foo = $foo\n";
print "martin = $martin\n";
执行以上程序,输出结果为:
Wide character in print at test.pl line 7.
smile = ☺
foo = foo
martin = Martin
变量以 @ 开头。访问数组元素使用 $ + 变量名称 + [索引值]
数组变量以 @ 符号开始,元素放在括号内,也可以以 qw 开始定义数组。负数从反向开始读取。按序列输出的数组形式,格式为 起始值 + .. + 结束值
数组长度返回的是数组物理大小,而不是元素的个数
$size = @array; $max_index = $#array;
push @ARRAY, LIST |
将列表的值放到数组的末尾 |
pop @ARRAY |
弹出数组最后一个值,并返回它 |
shift @ARRAY |
弹出数组第一个值,并返回它。数组的索引值也依次减一。 |
unshift @ARRAY, LIST |
将列表放在数组前面,并返回新数组的元素个数 |
使用 splice() 函数,语法格式如下:
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
参数说明:
使用 split() 函数,语法格式如下:
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
参数说明:
使用 join() 函数,语法格式如下:
join EXPR, LIST
参数说明:
使用 sort() 函数,语法格式如下:根据 ASCII 数字值来排序
sort [ SUBROUTINE ] LIST
参数说明:
哈希是 key/value 对的集合。
Perl中哈希变量以百分号 (%) 标记开始。
访问哈希元素格式:${key}。
创建哈希可以通过以下两种方式:
1)为data每个 key 设置 value
$data{'key'} = 'value';
2)通过列表设置
列表中第一个元素为 key,第二个为 value。
%data = ('key1', 'value1', 'key2', 'value2');
也可以使用 => 符号来设置 key/value:
%data = ('key1'=>'value1', 'key2'=>'value2');
以下实例是上面实例的变种,使用 - 来代替引号:使用这种方式 key不能出现空格,$val = %data{-key1}
%data = (-key1=>'value1', -key2=>'value2');
访问哈希元素格式:
$hash{key}
你可以像数组一样从哈希中提取值。
哈希值提取到数组语法格式:
@hash{key1,key2}。
读取所有key
我们可以使用 keys 函数读取哈希所有的键,语法格式如下:
keys %hash
该函数返回所有哈希的所有 key 的数组。
类似的我们可以使用 values 函数来读取哈希所有的值,语法格式如下:
values %hash
该函数返回所有哈希的所有 value 的数组。
如果你在哈希中读取不存在的 key/value 对 ,会返回 undefined 值,且在执行时会有警告提醒。
为了避免这种情况,我们可以使用 exists 函数来判断key是否存在,存在的时候读取:
exists($hash{'key'})
哈希大小为元素的个数,我们可以通过先获取 key 或 value 的所有元素数组,再计算数组元素多少来获取哈希的大小
@keys = keys %data;
$size = @keys;
添加 key/value 对可以通过简单的赋值来完成。但是删除哈希元素你需要使用 delete 函数:
$hash('key_n')=value_n;
Delete $hash{'key_m'};
$| 如果非零, 则在对当前选定的文件执行写或打印操作后强制清除缓冲区
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。