我是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.
可以重写那行代码以使其有效吗?
答案 0 :(得分:3)
$TestResultsData{$currPlatform}{$currDate}{failedtests}
的值是一个有福的hashref。 keys
懦弱地拒绝对有福的hashref进行操作,因为它会破坏封装和重载的错觉。
(旧版本的Perl根本不会接受hashref - 你需要传递一个正确的哈希值。)
尝试使用以下方法手动将hashref解引用到哈希:
my @failedtests = sort keys %{ $TestResultsData{$currPlatform}{$currDate}{failedtests} };