首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Perl不支持双引号内插哈希?

为什么Perl不支持双引号内插哈希?
EN

Stack Overflow用户
提问于 2011-07-18 18:05:25
回答 3查看 2K关注 0票数 8
代码语言:javascript
运行
复制
#!/usr/bin/perl
use warnings;

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

print %hash; #Prints no11no22
print "%hash"; #Prints %hash

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-18 21:24:19

哈希串应该是怎样的呢?标量很明显,数组也是如此。但是哈希应该是什么呢?这样的字符串化有多大用处?与在插值字符串中使用%字符不转义相比,它是更有用还是更不有用?是否值得花费大量的工作来修复今天在插值字符串中使用%的所有代码?

如果你能想出这些问题的好答案,那么我相信P5P会愿意听他们的。

票数 15
EN

Stack Overflow用户

发布于 2011-07-18 18:12:17

引用Nathan Torkington的话说:“最大的问题是%在带有printf的双引号字符串中大量使用。”更多信息请访问here

票数 21
EN

Stack Overflow用户

发布于 2011-07-19 10:54:07

不是真正的“为什么”的答案,但我想我会指出“如何”的各种答案。

当然,人们可以尝试:

代码语言:javascript
运行
复制
#!/usr/bin/perl
use warnings; use strict;

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

print "@{[ %hash ]}\n";

但是,我不知道这有什么用。

如果您想转储散列或任何其他复杂数据结构的内容,请根据您的用例使用Data::DumperYAMLJSON

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6731291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档