Grep方法在perl中不起作用

时间:2017-12-12 15:21:52

标签: perl grep

这个grep声明有什么问题?代码中的其他所有内容都运行良好,但我没有在@result中获得任何输出。

$rs_id逐个获取另一个文件的值rs548419688rs553613476rs573497853。当我使用语句my @result= grep /rs548419688/, @snp;时,我得到了正确的输出。但是下面的代码并没有给我任何输出。你能否确定错误?

sub findVariants {
    my ($rs_num) = @_;
    open (my $in_file, '<testSNPs')
        or die "Could not open the file: $!\n";

    my @snp = <$in_file>;
    my @result = grep /$rs_num/, @snp; 
    print @result;
    close $in_file; 
}

2 个答案:

答案 0 :(得分:1)

如果<input class="form-Field-control date required dr-FormField-control" aria-invalid="true" name="recommends_insurance_term_life_referral[birth_date]" id="recommends_insurance_term_life_referral_birth_date" type="date"> 包含字符串$rs_num,则此方法有效。我怀疑它实际上包含字符串rs548419688rs548419688␊加上换行符)。当您从文件中读取内容时,请不要忘记使用rs548419688删除换行符。

答案 1 :(得分:0)

我的标准建议的另一个案例:

每当您不确定比较或正则表达式失败的原因时,请检查您的数据/正则表达式实际包含的内容。

use Data::Dumper;
local $Data::Dumper::Useqq = 1;
print Dumper $rs_num;
print Dumper \@snp;

perldoc Data::Dumper