如何用perl语言循环语句实现依次打开多个文件

有多个.dat数据文件,如何用perl语言循环语句实现依次打开这些文件,对其内容进行读写操作?... 有多个.dat数据文件,如何用perl语言循环语句实现依次打开这些文件,对其内容进行读写操作? 展开
 我来答
bsdgzzkxn
2011-07-13 · TA获得超过390个赞
知道小有建树答主
回答量:496
采纳率:50%
帮助的人:389万
展开全部
#Perl程序变量用前不用声明,根据使用位置的上下文,Perl能自动分析变量类型

for ($inputFileListIndex=0;$inputFileListIndex<=$#inputFileArray;$inputFileListIndex++) {
#这就是一循环,当inputFileListIndex小于等于数组 inputFileArray的索引值时,执行循环。
#“$”这个符号引导的是变量,“@”这个符号引导的是数组,$#inputFileArray这个的意思是取inputFileArray这个数组的最后一个变量的索引值(就是这个数组元素个数-1)。

$tmp = $inputFileArray[$inputFileListIndex];
#建立一个临时变量tmp,然后把数组对应inputFileListIndex这个索引的值赋给tmp。

if ($tmp =~ /^(.*[\\\/])([^\\\/]+)$/){
#这块做了个正则表达式判断, =~是个表示用来做正则表达式匹配的符号,把后面的一串正则表达式与tmp中的字符串匹配,若果匹配成功,则为真。

#/^(.*[\\\/])([^\\\/]+)$/,这个两个“/” “/”符号限制出正则表达式的范围,里面的^(.*[\\\/])([^\\\/]+)$是正则表达式,^表示字符串的开头,$表示字符串的结尾,

#(.*[\\\/])这个括号框出了一个组,它是第一个组,组号是1,在后面有用。里面“.”表示 任何字符除了回车,“*"表示0到多个重复前面的那个字符,所以.*表示任意字符无限多次,就是什么都行的意思。之后的[]这个符号表示它里面指明的所有东西匹配上一个就行,它里面是\\\/,第一个\用来转义第二个\,第三个\用来转义第四个/,所以它实际上说的就是“\”和“/”匹配上一个就行。

#([^\\\/]+)接着又是一个组,组号2。[]这里面的^和外面不同,表示非的意思,所以就是说匹配任何字符, 只要不是“\”和“/”就行。接着一个“+”表示前面匹配到的字符至少有一个。

#所以总的来看,这段正则表达式的意思是,有一个字符串,从开始起在任意字符后,有一个“\”或“/”出现,之后有一个以上重复的非“\”和“/”的字符出现直到结尾。

push(@},$tmp);
#判断成功后,以匹配到的第一组“(.*[\\\/])”的内容为键,取出folderpath这个哈希里对应的值,并将tmp里的内容push到,以该取出的值为名的数组的末尾。

}
else{
push(@},$tmp);
#不然就把,取出folderpath这个哈希里对应“nofolder”这个键的值,并将tmp里的内容push到,以该取出的值为名的数组的末尾。
}
}
ace_fei
推荐于2016-01-03 · TA获得超过2013个赞
知道小有建树答主
回答量:734
采纳率:100%
帮助的人:717万
展开全部
while (my $file = glob "*.dat" )
{
open my $fh, '+>', "$file" or die $!;
while (<$fh>)
{

}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
计名pS
2011-07-13 · TA获得超过3649个赞
知道大有可为答主
回答量:4189
采纳率:0%
帮助的人:2179万
展开全部
### /path/to/many_file.dat

while (< "/path/to/*.dat" >) {
### This is called Directory glob
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d44faec
2011-07-13 · TA获得超过640个赞
知道小有建树答主
回答量:699
采纳率:0%
帮助的人:181万
展开全部
学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式