perl入门02:标量与数组

perl入门02:标量与数组,第1张

标量直接量即直接定义的值,一般为以下两种:

使用时直接使用或加运算符即可。常见的有加减乘除 +-/ ,乘幂为 ,取余数 %

41、undef特殊标量:表示0或者空字符串

42、chomp函数:去掉标量结尾的换行符,十分常用;因为在实际 *** 作中,逐行读取一个文件内容,每行结尾都会有一个换行符的。

这里有两个概念:列表与数组,但一般指的都是一个意思,可不必区分

push :结尾添加 ; pop :结尾移除

shift :开头移除 ; unshift :开头添加

结果会发现 sort默认并非按照数值大小排序,10排在了第二位。这是因为perl排序默认并非为数值排序。后面会学习到实现数值排序的方法。

while ( <FILE> ) {

next unless $_ =~ /^Administrative Contact/;

my $end = undef;

while ( ! $end ) {

my $line = <FILE> ;

$end = 1 if $line =~ /^Technical Contact/;

print $line unless $end

}

}

这个是没办法已经匹配存入新数组之后去获得的,不过可以尝试其他方式,代码修改为以下吧:

for(my $i = 0; $i < @all_file; $i++){

if($all_file[$i]=~/$str/g){

print "Matched in line:$_,Index is:$i\n"

}

}

这样可以变相实现你的要求

数组的下标从0开始,$#array是一个特殊的变量,它的值就是数组array的最后的元素的下标,假设array有3个值,最后的下标就是2(依次是0、1、2),假设你的数组名字为@HHH,最后的索引就是$#HHH

负值索引就是从后面依次取数组的索引,依次是(-1,-2,-3,-4,),就是为了让你方便从数组里面取出值来用的。这样用数组实现一个栈就很容易了。例子你看楼上的就明白了。

不知道你这里读取具体指什么,我就把文件名打印出来,把文件内容打印出来吧。(程序指定两个参数,第一个参数是指定的文件夹名,每二个参数是指定的扩展名。)

#!/usr/bin/perl

use strict;

use warnings;

die "Usage: $0 <dir> <extion>\n" unless @ARGV == 2;

my $Dir = $ARGV[0] ;

my $Ext = $ARGV[1] ;

opendir(DH, "$Dir") or die "Can't open: $!\n" ;

#读取指定文件夹下面的指定扩展名的文件名,保存到数组里。

my @list = grep {/$Ext$/ && -f "$Dir/$_" } readdir(DH) ;

closedir(DH) ;

chdir($Dir) or die "Can't cd dir: $!\n" ;

foreach my $file (@list){

open(FH, "$file") or die "Can't open: $!\n" ;

print "$file:\n" ;

while(<FH>){

print ;

}

print "\n";

close(FH) ;

}

以上就是关于perl入门02:标量与数组全部的内容,包括:perl入门02:标量与数组、perl取文本中一部分数据。、perl获取$_的当前数组下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9665868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存