为什么我的文件内容/用户input不匹配? (缺lesschomp规范)
我正在读取一个文件/ STDIN
并寻找一个特定的值:
use strict; use warnings; my $find = 'def'; while (<DATA>) { if ($_ eq $find) { print "Found: $_\n"; # Never reached! } } __DATA__ abc def xyz
为什么从来没有匹配的条件?
Data::Dumper
可以用来更仔细地检查variables:
use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper $_, $find;
输出,例如
$VAR1 = "def\n"; $VAR2 = "def";
您必须删除<DATA>
读入$_
的\n
字符。 最简单的方法就是chomp
函数
use strict; use warnings; my $find = 'def'; while (<DATA>) { chomp; if ($_ eq $find) { print "Found: $_\n"; # Never reached! } } __DATA__ abc def xyz