当前位置:  开发笔记 > 编程语言 > 正文

在Perl中是否有内置的"hash to string"?

如何解决《在Perl中是否有内置的"hashtostring"?》经验,为你挑选了4个好方法。

我将从Python背景学习Perl,其中以下哈希到字符串转换内置于该语言中:

>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> str(d)
"{'a': 1, 'c': 3, 'b': 2}"

是否有内置和/或模块具有子程序,其输出沿着以下行:

"('a' => 1, 'b' => 2, 'c' => 3)"

奇怪的是,网络搜索perl "hash to string"并没有发现我正在寻找的任何内容.谢谢!



1> Leon Timmerm..:
use Data::Dumper;
local $Data::Dumper::Terse = 1;
my $str = Dumper({a => 1, b => 2, c => 3});



2> dwarring..:

另见JSON:

#!/usr/bin/perl
use warnings; use strict;
use JSON;

my $data = {a => 1, b=> 2, c => 3};

print to_json($data);

这会产生:

{"c":3,"a":1,"b":2}


虽然原始问题并不意味着这是一个问题,但JSON :: to_json是_fast_,所以如果你需要序列化很多东西,这可能是比Data :: Dumper更好的答案.(http://doppnet.com/2011/03/how-to-gain-24861-performance-boost-in-perl/)
+1虽然似乎Data :: Dumper被投票回答,但我认为JSON方法应该得到一个非常简单的哈希到字符串的识别.

3> Greg Hewgill..:

Data::Dumper一种方法可以进行这种转换.



4> j_random_hac..:

使用Data :: Dump代替Data :: Dumper.它基本上是一样的,除非没有那令人讨厌的$VAR1 = ...瑕疵:

use Data::Dump "pp";
print pp({a => 1, b => 2, c => 3});

生产:

{ a => 1, b => 2, c => 3 }

如果你在Windows上,Data :: Dump 已从 5.8版开始预装了ActivePerl.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有