我试图用单引号括起哈希值中的所有值。这是我的代码。
foreach(values(%properties_hash))
{
print "'".$_."'\n";
}
现在我正在打印。我将如何实际增加价值。这也打印
'logs
'format/systemout-2010-format.txt
'analyze
这是唯一的 打印第一个'。为什么会这样?
谢谢!
答案 0 :(得分:7)
您的代码正常运作。
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";
}
答案 1 :(得分:1)
这个怎么样?
foreach (keys %properties_hash) {
$properties_hash{$_} = "'$properties_hash{$_}'\n";
}
答案 2 :(得分:0)
for (values %properties_hash) {
$_ = "'$_'";
}
但你为什么要这样做?
请注意,如果任何值中包含撇号,则不会产生正确引用的字符串。
至于你遗失的引用,也许那些字符串中有回车符,第二个引号覆盖了第一个?