【问题标题】:How to get the hash keys and values of a hash in perl mojo如何在 perl mojo 中获取哈希的哈希键和值
【发布时间】:2021-12-30 03:02:30
【问题描述】:

我试图弄清楚如何选择哈希的显式键和值。

my $hash = query('select id, name, required from table')->hashes

我转储时的输出是:

var1 = bless ([
              {
               'name' => value,
               'id' => value,
               'required' => value
           }.....
])

我想要的是得到以下输出:

var1 = bless ([
              {
               'required' => value
              }...
])

之后我想比较另一个数组的索引是否==索引。

【问题讨论】:

    标签: perl web mojolicious


    【解决方案1】:

    您从bless 中删除了类名,但我猜它是Mojo::Collection。使用它的 map 方法迭代元素:

    my $required = $hash->map(sub { required => $_->{required} });
    # Untested.
    

    此外,将名称 $hash 用于哈希集合会令人困惑。

    我不明白你关于索引的最后一句话。如果要提取$index-th 元素,可以使用

    my $hash = $required->to_array->[$index];
    

    或者直接取值

    my $value = $required->to_array->[$index]{required};
    

    【讨论】:

    • 对不起,我是 perl 的菜鸟。好吧,现在我得到了所有要求的值,但是我怎样才能得到一个值?像 $hash->[0] 总是返回键。
    • 到目前为止它可以工作,但是就像我在其中放置索引时一样,索引不是像 1,2,3,4,5,,6 那样排成一行,更像是 12,16.21,23为什么会这样?
    • 我不明白。
    • 我另外修复了。感谢您的帮助!
    【解决方案2】:

    一旦你得到一个散列引用,无论通过什么方式,你都可以像这样访问键:

    $hash->{required};  # etc.
    
    

    请参阅perlref 了解更多信息。另请阅读 perldsc 和 perlreftut。

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 1970-01-01
      • 2014-01-30
      • 2010-10-20
      • 2014-10-17
      • 2013-02-12
      • 2015-01-10
      • 1970-01-01
      相关资源
      最近更新 更多