3

ハッシュ内のすべての値を一重引用符で囲もうとしています。これが私のコードです。

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

今、私は印刷しています。実際にどのように値を増やすのでしょうか。また、これは印刷します

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

最初の'を印刷するだけです。なぜそうなるのでしょうか?

ありがとう!

4

3 に答える 3

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";
}
于 2012-07-19T18:41:54.957 に答える
1

これはどう?

foreach (keys %properties_hash) {
  $properties_hash{$_} = "'$properties_hash{$_}'\n";
}
于 2012-07-19T18:33:41.710 に答える
0
for (values %properties_hash) {
    $_ = "'$_'";
}

しかし、なぜあなたはこれをしたいのですか?

いずれかの値にアポストロフィが含まれている場合、これでは適切に引用された文字列が生成されないことに注意してください。

欠落している引用符については、これらの文字列にキャリッジリターンがあり、2番目の引用符が最初の引用符を上書きしている可能性がありますか?

于 2012-07-19T18:36:36.887 に答える