mythconverg_backup.pl 崩溃并出现错误“无法使用‘defined(@array)’(也许您应该省略 defined()?)在 ./mythconverg_backup.pl 第 1070 行。”
新安装 xubuntu 16.4 LTS 并成功恢复数据库后,我想使用以下命令再次备份数据库:
$ ./mythconverg_backup.pl --verbose --directory /home/lukas/mythtv/db_backups
结果是以下错误:
Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./mythconverg_backup.pl line 1070.
你能给我提示一下吗?
答案1
来自 perldoc ( 5 版本 24.0 )
用于定义聚合(哈希和数组)上的 已弃用。它用于报告是否已为该聚合分配内存。此行为可能会在 Perl 的未来版本中消失。您应该改用一个简单的大小测试:
if (@an_array) { print "has array elements\n" }
所以你只需要去1070 行的mythconverg_备份.pl并从那里删除定义函数。例如:
if( defined @an_array )
将其更改为if( @an_array )