我对 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.
可以重写该行代码以使其正常工作吗?
最佳答案
$TestResultsData{$currPlatform}{$currDate}{failedtests}
的值是一个受祝福的哈希引用。 keys
胆怯地拒绝对受祝福的 hashref 进行操作,因为这会破坏封装和重载的幻觉。
(旧版本的 Perl 根本不接受哈希引用 - 您需要向它传递一个正确的哈希值。)
尝试使用以下方法手动将 hashref 取消引用为哈希:
my @failedtests = sort keys %{ $TestResultsData{$currPlatform}{$currDate}{failedtests} };
关于perl - 引用键的参数类型必须是 unbless,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26426021/