perl数组

列表与数组 Perl入门第三章

╄→尐↘猪︶ㄣ 提交于 2020-03-07 20:22:42
列表List 是标量的有序集合。数组array则是存储列表的变量。数组/列表的每个元素element都是单独的标量变量,拥有独立的标量值。 1. 数组: 访问数组中的元素: $fred[0]="yaya";$fred[1]="yaya1";$fred[2]="yaya" ... $fred[99]=“last" 特殊的数组索引: $#fred fred数组最后一个索引值; fred[$#fred] ="last" $fred[-1] ="last" 2. 列表: 列表直接量: (1..5) #(1 ,2. 3, 4, 5) ($m..$n) #m n 之间的部分 (0, $#fred) #0 ~ 99 qw简写 # quoted word 加上单引号的单词,当作 单引号 内的字符串来处理。不能像双引号一样使用\n 和 $fred 替换。空白符(空格,制表符,换行符)会被抛弃。 qw( a b c) qw# a b c# qw! a b c ! 列表的赋值: 列表值赋给变量 ($a , $b , $c)=("m" , "n" , "t") 变量值交换 ($a ,$b)=($b ,$a) (fred[0] , fred[1], fred[2], fred[3]) = qw/a b c d/ @fred=qw/a b c d/ @stuff =(@fred , undef , @fred

原文件内容更新及备份,特殊标量$^I和@ARGV学习笔记

半世苍凉 提交于 2020-02-12 21:18:02
#!/usr/bin/perl use strict ; use warnings ; my $filename = "C:\\Users\\Chen\\abv.txt" ; $^I = ".bak" ; push @ARGV , $filename ; while ( <> ) { s/haha/h/g ; print ; } <>钻石操作符会调用@ARGV数组(由命令行参数组成的列表)。在使用<>之前设置好@ARGV就行。 上面这个程序就可以将abv.txt中的haha换成h。并不需要写入另一个新的txt。并且做了一个原文件备份,是abv.txt.bak文件。 命令的实现就是靠特殊变量$^I。 其功能就是可以创建一个abv.txt.bak备份文件,并将更改过的结果输出到原来的文件abv.txt。具体实际过程可以看learning perl第六版175页至177页。 也可以使用windows的cmd命令行 perl -p -i.bak -w -e “s/a/an/g” abv.txt 参考文章:https://www.jianshu.com/p/ea367ce629d2 来源: CSDN 作者: makoudada 链接: https://blog.csdn.net/makoudada/article/details/104283462

Perl -- 数组引用

百般思念 提交于 2020-02-08 10:29:55
1、用多个数组来完成一个简单任务 在Minnow开始一个旅程之前(比如一个三小时的远足), 我们应该事先检查一下每个乘客和乘务人员的行李,保证他们带了旅行所需要的东西。比如说吧,水上安全救生装备。在Minnow船上的每个乘客要生命维持系统,太阳镜和水瓶以及雨衣,代码如下 my @required = qw(preserver sunscreen water_bottle jacket); my @skipper = qw(blue_shirt hat jacket preserver sunscreen); for my $item (@required) { unless (grep $item eq $_, @skipper) { # 数组为空,没有匹配 print "skipper is missing $item\n"; } } 当需要检查其他人的行李时,仍然需要上述代码 my @gilligan = qw(red_shirt hat lucky_socks water_bottle); for my $item (@required) { unless (grep $item eq $, @gilligan) { # not found in list? print "gilligan is missing $item.n"; } } my @professor = qw

PERL删除数组元素的多种方法

坚强是说给别人听的谎言 提交于 2019-12-09 17:32:25
比如说: @array = ('ray', 'loca', 'simon', 'ray'); 这里,我们想删除‘ray’这个元素。 列出几种方法: 1. 用grep函数。 函数名 grep 调用语法 @foundlist = grep (pattern, @searchlist); 解说 与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参数pattern为欲查找的模式,返回值是匹配元素的列表。 例子 @list = ("This", "is", "a", "test"); @foundlist = grep(/^[tT]/, @list); 结果 @foundlist = ("This", "test"); 2. 用map函数 函数名 map 调用语法 @resultlist = map (expr, @list); 解说 此函数在Perl5中定义,可以把列表中的各个元素作为表达式expr的操作数进行运算,其本身不改变,结果作为返回值。在表达式expr中,系统变量$_代表各个元素。 例子 1、 @list = (100, 200, 300); @results = map ($_+1, @list); 2、@results = map (&mysub($_), @list); 结果 1、(101, 201, 301) 2、无 3.