【问题标题】:Perl return array from multidimensional arrayPerl 从多维数组返回数组
【发布时间】:2015-05-22 11:51:32
【问题描述】:

我有这个多维数组:

@valid_values = (["val00", "val01", "val02"], ["val10", "val11", "val12"]);

我想通过 grep 检查多维数组的第一个数组中是否存在某个值。 我尝试过这样的事情:

if (grep $_ eq $check_value, @valid_values[0]) {print "ok\n"}

但这不起作用。我也尝试过使用$valid_values[0],但我认为这只会返回对数组的引用,所以我使用@ 取消引用。

关于如何返回 2d 数组的整个第一个数组以便我可以将其用于 grep 函数的任何建议?

【问题讨论】:

  • 取消引用第一个元素作为数组grep .., @{ $valid_values[0] }
  • Perl 有大量文档perldsc。另外,永远不要使用@a[0],始终使用$a[0]。
  • @Сухой27 谢谢,这工作:)
  • @C 您应该将其添加为答案,以便人们将来更容易找到它。

标签: arrays perl multidimensional-array reference grep


【解决方案1】:

@valid_values 的第一个元素作为$valid_values[0] 访问。

第一个元素中的值是一个数组引用。要取消引用数组引用,请使用 @{ ... }。

所以要获取@valid_values的第一个元素中的数组引用所引用的数组,你需要@{ $valid_values[0] }。

有关如何处理此类数据结构的更多详细信息,请参阅perllol、perldsc 和perlreftut。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2017-03-06
    • 2018-03-24
    • 2014-07-23
    • 2014-10-12
    • 2013-05-18
    • 2016-01-20
    • 1970-01-01
    相关资源
    最近更新 更多