擅长:python、mysql、java
<p>首先,它们是元组。我以前从未见过“toop”在数学或编程中用来表示元组</p>
<p>您自己的代码的问题是您将<code>sort_random_4_toops_by_sum</code>的参数复制到了错误的位置。你有</p>
<pre><code>my @sorted_toops = ();
my ( @sorted_toops2, @sorted_toops_sums, @sortedtoops3 ) = @_;
</code></pre>
<p>代码期望<em>未排序的</em>数据位于(非常糟糕的名称)<code>@sorted_toops</code>。您还声明了<code>@sortedtoops3</code>两次。如果您更改如下,您的程序将正常工作</p>
^{pr2}$
<p>我建议您使用<a href="http://metacpan.org/module/List::UtilsBy" rel="nofollow">^{<cd4>}</a>模块,它提供了一个<code>rev_nsort_by</code>(反向数字排序)实用程序函数。使用它,您可以将您的<code>sort_random_4_toops_by_sum</code>减少到这个值</p>
<pre><code>use List::UtilsBy qw/ rev_nsort_by /;
sub sort_random_4_toops_by_sum {
[ rev_nsort_by { sum @$_ } @_ ];
}
</code></pre>