我试图用单引号将我的哈希中的所有值括起来。这是我的代码。
foreach(values(%properties_hash))
{
print "'".$_."'\n";
}
现在我正在打印。我将如何实际增加价值。这也打印
'logs
'format/systemout-2010-format.txt
'analyze
它只打印第一个'。为什么会这样?
谢谢!
您的代码正在运行。
my %h = (
'a' => 1,
'b' => 2,
'c' => 3,
'd' => 4,
);
foreach(values(%h)) {
print "'".$_."'\n";
}
印刷
'3'
'1'
'2'
'4'
您的字符串可能以“\r”结尾,因此结尾“'”打印在第一个“'”上,因此看不到最后一个撇号。尝试:
foreach(values(%h)) {
s/[\r\n]//g;
print "'".$_."'\n";
}
这个怎么样?
foreach (keys %properties_hash) {
$properties_hash{$_} = "'$properties_hash{$_}'\n";
}
for (values %properties_hash) {
$_ = "'$_'";
}
但你为什么要这样做?
请注意,如果任何值中包含撇号,这将不会产生正确引用的字符串。
至于您缺少的报价,也许这些字符串中有回车符,而第二个报价覆盖了第一个?