好吧,我有一个让我发疯的问题。我正在尝试使用正则表达式提取子字符串:
($var) = $data =~ m/regex/;
它正在工作,但返回的“字符串”与真正的 substr 不太一样。打印字符串看起来像真正的 substr,但使用 if ($var eq "substr") 检查不会返回 true。我还注意到,当我尝试使用 $var .= ".."; 在其末尾添加一些内容时 我得到(如果 $var 是“hello”)“..llo”。
这是什么回归?
如果这有所作为,我将在 Linux 中运行它。我不认为它会,但同样的代码适用于我的 Windows。
下面是代码示例:
$datatxt contains
..
udir=/home/me/
..
use File::Read;
my $data = read_file( {skip_comments => 1}, $datatxt);
($udir) = $data =~ m/udir=(.*)/;
print $udir; #prints /home/me/
print ".".$udir."."; #prints ..home/me/
if ($udir ne "/home/me/") {
print "not equal"; #prints...
}