1
2
3
4
foreach $line (@lines) # 循环读取每一行
{
.... # $line是一行的内容
}
读到每一行后,对该行进行 *** 作,使用split函数进行拆分。对于不行的文件格式,有不同的拆分方法,你应该看一行列的拆分方式,比如是用的逗号分隔,还是制表符分隔。拆分方法如下:
1
@cols = split(/[,\t]/, $line) # 对$line进行拆分,拆分依据是逗号或制表符
然后得到的@cols数组就是每一列了,第一列就是$cols[0],第二列是$cols[1],然后你就可以将你的结果输出到OUT了。
说一下你的错误:@pattern是数组变量,数组变量访问的形式,要么是@pattern访问全部变量,要么利用$pattern[$i]的形式访问。你直接写$pattern是访问不到任何东西的。所以需要对@pattern再加一个循环进行正则匹配。下面是我写的perl代码,直接读取数组型字符了,为方面没有读入文件,和你说的问题应该类似。结果图也附上了,不知道和你说的是否符合。
#!/usr/bin/perl
@configfile = ("I","am","a","patten1","Not","Apatten")
@patten = ("patten1","patten2","patten3")
$i=0
$j=0
foreach my $line (@configfile)
{
foreach my $pad1 (@patten)
{
if ($line =~ /$pad1/){
print "\$configfile[$i]与\$patten[$j]匹配\n"
}
$j++
}
$j=0
$i ++
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)