web-dev-qa-db-fra.com

mythconverg_backup.pl se bloque avec une erreur: impossible d'utiliser 'defined (@array)'

mythconverg_backup.pl plante avec l'erreur "Impossible d'utiliser 'defined (@array)' (Peut-être devriez-vous simplement omettre le defined ()?) à la ligne 1070 de ./mythconverg_backup.pl."

Après une nouvelle installation de xubuntu 16.4 LTS et une restauration de base de données réussie, je souhaite sauvegarder à nouveau la base de données avec la commande suivante:

$ ./mythconverg_backup.pl --verbose --directory /home/lukas/mythtv/db_backups

Le résultat est l'erreur suivante:

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at ./mythconverg_backup.pl line 1070.

Pouvez-vous s'il vous plaît me donner un indice?

1
Lukas Jos

De perldoc (5 version 24.0)

L'utilisation de défini sur les agrégats (hachages et tableaux) est déconseillée. Il avait l'habitude de signaler si la mémoire de cet agrégat avait déjà été allouée. Ce comportement peut disparaître dans les futures versions de Perl. Vous devriez plutôt utiliser un simple test de taille:

if (@an_array) { print "has array elements\n" }

Donc, pour vous, allez simplement la ligne 107 de mythconverg_backup.pl et supprimez la fonction define à partir de là. Par exemple:

if( defined @an_array )changez-le enif( @an_array )

0
Prashant Pokhriyal