linux – Perl模块错误 – 已定义(%hash)已弃用
背景:
>我正在努力将Linux服务器迁移到Ubuntu 10.04到12.04的新服务器 错误: defined(%hash) is deprecated at pm/Alerts/Alerts.pm line 943. (Maybe you should just omit the defined()?) defined(%hash) is deprecated at pm/Alerts/Alerts.pm line 944. (Maybe you should just omit the defined()?) 码: ### # Iterate the arrays deleting identical counts from each. # If we found a mismatch then die. # If either array is not empty when we are done then die $logger->info('Comparing ' . (scalar keys %cms_rows) . ' CMS symbols to ' . (scalar keys %stats_rows) . ' STATS symbols'); foreach my $symbol ( keys %cms_rows ) { my %cms_row = delete $cms_rows{$symbol}; my %stats_row = delete $stats_rows{$symbol}; ##LINE 943## die("Error: NULL CMS counts for symbol '$symbol'") unless defined %cms_row; ##LINE 944## die("Error: NULL Stats counts for symbol '$symbol'") unless defined %stats_row; my $cms_json = encode_json(%cms_row); my $stats_json = encode_json(%stats_row); $logger->debug("Comparing counts for '$symbol': CMS($cms_json),Stats($stats_json)"); die("Error: Up Counts Don't match for symbol '$symbol': CMS($cms_json),Stats($stats_json)") unless (!defined $cms_row{1} && !defined $stats_row{1}) || $cms_row{1} == $stats_row{1}; die("Error: Down Counts Don't match for symbol '$symbol': CMS($cms_json),Stats($stats_json)") unless (!defined $cms_row{-1} && !defined $stats_row{-1}) || $cms_row{-1} == $stats_row{-1}; } ### 希望有人可以提供帮助,任何帮助都表示赞赏. 解决方法
您必须从严重旧版本的Perl升级. Perl
5.6.1 release notes说:
这总是一件非常愚蠢的事情,Perl现在警告你,你做的事情很愚蠢.关于你应该做些什么来解决这个问题的警告非常明确:
所以你的线将成为: die("Error: NULL CMS counts for symbol '$symbol'") unless %cms_row; die("Error: NULL Stats counts for symbol '$symbol'") unless %stats_row; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |