-1

このプログラムは、文字列が等しいことを出力しませんが、出力されると同じように見えます...誰か説明してください

#!/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";

しかし、出力が来ると、2 番目の文字列 $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";

なぜ彼らが等しくないのか誰か知っていますか???

4

2 に答える 2

0

ファイル内の行は、によって作成されます

$str."\n"

もちろんそれは等しくない

$str

末尾の改行を削除する必要があります。

my $str2 = <FILE>;
chomp($str2);
于 2013-08-06T20:42:16.047 に答える