2

我对 perl 很陌生,我被赋予了维护网页的任务。我发现了一个我不知道如何修复的错误。

perl 脚本在以下代码处停止。

my @failedTests = (sort(keys ($TestResultsData{$currPlatform}{$currDate}{failedtests})));
while ( @failedTests )
{
 ...

错误信息是:

Type of argument to keys on reference must be unblessed hashref or arrayref.

可以重写那行代码以使其正常工作吗?

4

1 回答 1

3

的值$TestResultsData{$currPlatform}{$currDate}{failedtests}是一个祝福的 hashref。keyscowardly 拒绝对祝福的 hashref 进行操作,因为它会打破封装和重载的错觉。

(旧版本的 Perl 根本不接受 hashref - 你需要传递一个正确的 hash。)

尝试使用以下方法手动将 hashref 解引用为哈希:

my @failedtests = sort keys %{ $TestResultsData{$currPlatform}{$currDate}{failedtests} };
于 2014-10-17T13:35:20.303 回答