#!/usr/bin/perl
use warnings;
my %hash=("no1"=>1, 
        "no2"=>2,
      );
print %hash; #Prints no11no22
print "%hash"; #Prints %hash为什么Perl不支持双引号内插哈希?它支持标量($),数组(@)的插值,那么为什么不支持哈希值(%)呢?
发布于 2011-07-18 21:24:19
哈希串应该是怎样的呢?标量很明显,数组也是如此。但是哈希应该是什么呢?这样的字符串化有多大用处?与在插值字符串中使用%字符不转义相比,它是更有用还是更不有用?是否值得花费大量的工作来修复今天在插值字符串中使用%的所有代码?
如果你能想出这些问题的好答案,那么我相信P5P会愿意听他们的。
发布于 2011-07-18 18:12:17
引用Nathan Torkington的话说:“最大的问题是%在带有printf的双引号字符串中大量使用。”更多信息请访问here。
发布于 2011-07-19 10:54:07
不是真正的“为什么”的答案,但我想我会指出“如何”的各种答案。
当然,人们可以尝试:
#!/usr/bin/perl
use warnings; use strict;
my %hash = (
    "no1" => 1,
    "no2" => 2,
);
print "@{[ %hash ]}\n";但是,我不知道这有什么用。
如果您想转储散列或任何其他复杂数据结构的内容,请根据您的用例使用Data::Dumper、YAML或JSON。
https://stackoverflow.com/questions/6731291
复制相似问题