在哈希中添加''围绕所有值

时间:2012-07-19 18:31:20

标签: string perl

我试图用单引号括起哈希值中的所有值。这是我的代码。

    foreach(values(%properties_hash))
    {
            print "'".$_."'\n";
    }

现在我正在打印。我将如何实际增加价值。这也打印

'logs
'format/systemout-2010-format.txt
'analyze

这是唯一的 打印第一个'。为什么会这样?

谢谢!

3 个答案:

答案 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) {
    $_ = "'$_'";
}

但你为什么要这样做?

请注意,如果任何值中包含撇号,则不会产生正确引用的字符串。

至于你遗失的引用,也许那些字符串中有回车符,第二个引号覆盖了第一个?