perl 第八弹 函数
Posted 流浪骆驼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 第八弹 函数相关的知识,希望对你有一定的参考价值。
上期回顾
$!
、
$
_、
$.
、
$@
、
@ARGV
、
@INC
、
@_
、
%ENV
、
$/
预定义变量的含义,简单示例
函数
# 创建含有"red", "green", "orange"三个元素的@line1
# 创建含有"red\n", "green\n", "orange\n"三个元素的@line2
@line1=( "red", "green", "orange");
@line2=( "red\n", "green\n", "orange\n");
# chomp 删除数组中每个元素末尾的换行符
chomp(@line1);
chomp(@line2);
print "@line1"; # red green orange 两个输出一样
print "@line2"; # red green orange
# 通过IN句柄读取文件的每一行,赋值给$line
while (my $line = <IN>){
# 删除每行结尾的换行符
chomp($line);
}
# 将输入内容赋予数组
# 打开文件test.txt,通过IN句柄读入文件
open IN,"test.txt" or die $!;
# 一次性将全部行放入数组@all里面
@all = <IN>;
数组函数:
# 创建含有Tom Raul Steve Jon四个元素的@names数组
@names = qw(Tom Raul Steve Jon);
# 如果index为1的元素已经定义,则输出hello $names[1]
print "Hello $names[1]\n", if exists $names[1];
__END__
(output)
Hello Raul
# 创建含有"red","green","blue","yellow"四个元素的@colors数组
@colors=("red","green","blue","yellow");
# 删除index为1的元素的值
delete $colors[1]; # green is removed
# 输出the seconde color is $colors[1]
print "the seconde color is $colors[1]\n";
__END__
(output)
the seconde color is
grep函数能够对数组(LIST)中的每个元素都求出表达式(EXP)的值,并据此返回另一个数组,该数组仅由上述表达式值为真的元素组成。如果其返回值是标量的话,则保存了表达式值为真的次数(即找到匹配样式的次数)。
用法:grep(EXPR,LIST)
# 创建@list数组
@list = (tomatoes, tomorrow, potatoes, phantom, Tommy);
# 匹配数组中含有tom字符串的元素,因为赋值给标量,所以$count为匹配上的次数,
# 赋值给@items,则返回为匹配上的元素
# 此处可以认真理解一下上下文
$count = grep( /tom/i, @list);
@items= grep( /tom/i, @list);
print "Found items: @items\nNumber found: $count\n";
__END__
(output)
Found items: tomatoes tomorrow phantom Tommy
Number found: 4
shift、unshift、pop、push由于前面已经说过一遍了,本次侧重总结归纳。详细示例参考
函数 |
用法 |
含义 |
shift |
shift(ARRAY) |
能移除并返回数组的第一个元素,同时把数组长度减去1 |
unshift |
unshift(ARRAY, LIST) |
能把LIST 追加到数组的起始位置。 |
pop |
pop(ARRAY) | 能弹出数组的最后一个元素,并返回该元素内容。此后,该数组的长度将减1。 |
push |
push(ARRAY, LIST) |
能把一个数值追加到数组末尾,同时增大该数组的长度 |
总结
一定要牢记啊,这些都是常用的啊~
ps:数组函数未完待续,四个数组函下一期还会有新的解读~~
以上是关于perl 第八弹 函数的主要内容,如果未能解决你的问题,请参考以下文章