6

编码:

my $compare = List::Compare->new(\@hand, \@new_hand);
print_cards("Discarded", $compare->get_Lonly()) if ($verbose);

print_cards期望(标量,对数组的引用)。
get_Lonly返回数组。将其转换为引用以便我可以将其传递给 print_cards 的语法是什么? \@{$compare->getLonly()}例如,不起作用。

谢谢!

4

1 回答 1

14

你可能想要

print_cards("Discarded", [$compare->get_Lonly])

子例程不返回数组,它们返回值列表。我们可以创建一个数组引用[...]

另一个变体是创建一个显式数组

if ($verbose) {
  my @array = $compare->get_Lonly;
  print_cards("Discarded", \@array)
}

第一个解决方案是这个的捷径。


@{ ... }一个取消引用运算符。它需要一个数组引用。如果你给它一个列表,这不会像你想象的那样工作。

于 2013-07-10T17:03:35.953 回答