[Sequanux-ml] Lot Sequanux-ml, Vol 1122, Parution 1

Marc SCHAEFER schaefer at alphanet.ch
Dim 26 Nov 12:46:48 CET 2017


On Sun, Nov 26, 2017 at 12:00:01PM +0100, sequanux-ml-request at sequanux.org wrote:
> En appelant  ale ( programme de panorama) sur la console : /usr/bin/ale
> 
> j'obtiens un magnifique message d'erreur:
> 
> Can't use 'defined(@array)' (Maybe you should just omit the defined()?)
> at /usr/bin/ale line 45.

"Ne pas utiliser defined(@array)' (supprimer le defined(), ligne 45"

De mémoire, n'est-ce pas un simple warning ?

Perl a modifié la syntaxe du langage et des choses qu'on écrivait comme:

if (defined(@array)) {

s'écrivent plus simplement

if (@array) {  # convertit en scalaire, la longueur du tableau, si
               # non nulle, exécuter

Si ça plante à cause de ça (étonnant), faire:

   # devenir root: sudo -s; su -

   # assurer que si /usr/bin/ale est en package, une mise à jour du
   # package ne sabotera pas la modification locale; si /usr/bin/ale n'est pas
   # en packages, fera une erreur
   # NB: si en package, cela veut dire que c'est maintenant votre
   # responsabilité d'assurer qu'en cas de mise à jour de sécurité,
   # vous êtes correct, faire un
   #    diff /usr/bin/ale.distrib /usr/bin/ale
   # pour voir que changer dans /usr/bin/ale
   # INUTILE si pas en package (erreur)
   dpkg-divert --rename /usr/bin/ale

   cp -a /usr/bin/ale.distrib /usr/bin/ale

   # faire la correction
   sed --in-place 's/if (defined(@array)) {/if (@array) {/g' /usr/bin/ale


Plus d'informations sur la liste de diffusion Sequanux-ml