这个程序不打印字符串是相同的但是当它们被打印时,它们看起来是相同的...有人请解释
#!/usr/bin/perl
$str = "print \"I want this to work\\n\";";
print $str."\n";
open FILE, "<", "check2.doc" or die "buhuhuhu";
my $str2;
while (<FILE>) {
$str2 = $_;
}
close FILE;
print "$str2\n";
if ( $str eq $str2) {
print "they are equal\n";
但是当输出结束时,由于第二个字符串$ str2
,底部会有额外的一行print "I want this to work\n";
print "I want this to work\n";
-----empty line-----
这是文件check2.doc
print "I want this to work\n";
有谁知道为什么他们不平等?
答案 0 :(得分:0)
读取的文件包含\n
,因此您必须将其删除:
$str2 = $_;
chomp $str2;
并且,如果您的文件只有一行,请将while循环替换为:
$str2 = <FILE>;
chomp $str2;
答案 1 :(得分:0)
文件中的行由
创建$str."\n"
当然,这不等于
$str
您需要删除尾随换行符。
my $str2 = <FILE>;
chomp($str2);