标量直接量即直接定义的值,一般为以下两种:
使用时直接使用或加运算符即可。常见的有加减乘除 +-/ ,乘幂为 ,取余数 %
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获取$_的当前数组下标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)