【问题标题】:create a hash from command line in perl在 perl 中从命令行创建哈希
【发布时间】:2012-09-16 12:10:26
【问题描述】:

我有一个包含如下数据的文件:

4  1
7  12
2  5
4  4
6  67
12  5

通过命令行,我可以将每一行拆分成一个数组,如下所示:

perl -F'\s+' -ane 'print $F[0]' file

因此将打印所有第一个字段。 现在上面的命令将每一行转换为一个数组。 以类似的方式,这可以通过创建一个散列来完成,其中键作为第一个字段,每个键的值是第二个字段。?

【问题讨论】:

  • 如果您使用该示例输入构建哈希,您将使用 4 => 4 覆盖键/值对 4 => 1,因为哈希键是唯一的。此外,-F'\s+' 是多余的,因为这是使用 -a 时的默认自动拆分值。

标签: perl


【解决方案1】:

试试这个:

perl -MData::Dumper -ane '$X{$F[0]}=$F[1]}{print Dumper \%X' file

【讨论】:

  • 哇一个不知名的恩人优化了我的代码!谢谢。这是我的手机提交的,非常感谢。
【解决方案2】:

是的,可以做到。

perl -MData::Dumper -e '%a = map { (split)[0,1] } <ARGV>;print Dumper \%a' dt.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-20
    • 2011-04-20
    • 2011-05-08
    • 1970-01-01
    • 2014-02-27
    • 2013-04-11
    • 2018-12-07
    • 2011-02-23
    相关资源
    最近更新 更多