perl中while与foreach的区别

perl语言中的循环控制函数主要有for/foreach/while,
其中for与foreach的意义基本相同只不过格式上有所变化,
主要还是需要关注一下foreach与while的不同之处,通过
自己的验证发现才能印象深刻。
foreach(){
 
  print;
}
while(){
   print;
}
上面两段代码都能将文件的内容打印到屏幕上,并且是按行打印,但是它们在读取文件时的方式
是不同的,foreach函数是一次性的将文件内容全部读进来然后再逐行赋给循环中,while是一行
一行的读取文件的,所以while的每次循环的行数($.)是递增的,而foreach的($.)是直接达到文件的结尾值.
请读者试运行一下下面的例子:
foreach(){
   print("\$\.=$.\n");
   print;
}
while(){
   print("\$\.=$.\n");
   print;
}
思考如下问题:
有两个文件file1和file2,需要编写一个脚本来实现如下功能:打印出file2中所有包含file1中的任一行的字符
下面这段代码有何不妥之处,应如何修改才能实现目的。
open(AA,"file1");
open(BB,"file2");
foreach(){
   print("\$\.=$.");
   $temp=$_;
    foreach(){
      #print("temp=$temp\n");
      if(/$temp/)
       {
          print;
       }
    }

}
close BB;
close AA;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值