为什么Perl不支持双引号中的哈希插值?

Cha*_*hak 8 perl hash interpolation

#!/usr/bin/perl
use warnings;

my %hash=("no1"=>1, 
        "no2"=>2,
      );

print %hash; #Prints no11no22
print "%hash"; #Prints %hash
Run Code Online (Sandbox Code Playgroud)

为什么Perl不支持在双引号内插入哈希?它支持标量($),数组(@)的插值,为什么不支持散列(%)?

Kil*_*oth 21

引用Nathan Torkington的话:"最大的问题是%在printf的双引号字符串中被大量使用." 更多信息在这里.


Cha*_*ens 15

哈希如何进行字符串化?标量也很明显,数组也是如此.但哈希应该是什么?这样的字符串化有多大用处?它是否比在插值字符串中使用未转义的%字符更有用或更不有用?今天修复所有在插值字符串中使用%的代码需要花费多少工作量?

如果你能对这些问题给出好的答案,那么我相信P5P愿意倾听他们的意见.