perl中grep的对象可以为变量吗 正确方法是怎样?我的详细问题与脚本是这样的
答案:1 悬赏:0
解决时间 2021-01-25 03:31
- 提问者网友:不爱我么
- 2021-01-24 14:40
perl中grep的对象可以为变量吗 正确方法是怎样?我的详细问题与脚本是这样的
最佳答案
- 二级知识专家网友:猎心人
- 2021-01-24 15:40
问题应该是出在while () 这里。
这句是把文件中每一行取出来,赋给系统变量$_,而$_这个变量是很特殊的,perl中好多的功能都会用到这个,所以可能会带来不可知的后果,我们应该尽量避免使用$_。
另外,这个不能多次使用,除非你使用seek重置文件指针,不然的话,第一次执行完了,第二次里面的值就是空了。
可以改成:
my @b = ;
foreach my $line () {
chomp($line);
next if (!$line);
@a = grep (/$line/, @b);
print C @a;
}
这句是把文件中每一行取出来,赋给系统变量$_,而$_这个变量是很特殊的,perl中好多的功能都会用到这个,所以可能会带来不可知的后果,我们应该尽量避免使用$_。
另外,这个不能多次使用,除非你使用seek重置文件指针,不然的话,第一次执行完了,第二次里面的值就是空了。
可以改成:
my @b = ;
foreach my $line () {
chomp($line);
next if (!$line);
@a = grep (/$line/, @b);
print C @a;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯