我有一个创建文件的 Perl 子例程,如下所示:
sub createFile {
if (open (OUTFILEHANDLE, ">$fileName")) {
print OUTFILEHANDLE "$desiredVariable\n";
}
close(OUTFILEHANDLE);
}
其中 $fileName 和 $desiredVariable 之前已定义。我调用它,然后调用以下子例程,该子例程从文件中读取,获取第一(唯一)行,并将其保存到变量 $desiredVariable 中:
sub getInfoFromFile {
if (existFile($fileName)) {
if (open (READFILEHANDLE, "<$fileName")) {
my @entire_file=<READFILEHANDLE>; # Slurp
$desiredVariable = $entire_file[0];
chop $desiredVariable;
close(READFILEHANDLE);
}
}
}
如果我省略“chop”行,$desiredVariable 就是我想要的,但尾随空格换行符。如果我包含“chop”行,则 $desiredVariable 是一个空字符串。出于某种原因,“chop”正在杀死整个字符串。我已经尝试过它$desiredVariable =~ s/\s*$//;
和其他几个字符串操作技巧。
我究竟做错了什么?