Domanda

Nel mio progetto che sto attualmente preparando una mossa passo-passo dal codice legacy ai moduli nuovi, opportunamente progettati e testati. Dal momento che non tutti i compagni programmatore segue da vicino quello che faccio, mi piacerebbe emettere avvertimenti quando si utilizza il vecchio codice. Vorrei anche fortemente preferisco essere in grado di raccomandazioni di uscita su come porto vecchio codice.

Ho trovato due modi per farlo:

  1. Attribute :: Disapprovato, che va bene per le funzioni, ma piuttosto ingombrante se un modulo completo è obsoleto. Inoltre, nessuna informazione aggiuntiva a parte gli avvertimenti.

  2. Perl::Critic::Policy::Modules::ProhibitEvilModules per i moduli o forse una regola personalizzata per Perl::Critic deprecazione più fine sulla funzione o livello di metodo. Questo metodo va bene, ma non è immediatamente evidente dal codice stesso che è deprecato.

Altri suggerimenti o trucchi su come farlo correttamente e facile?

È stato utile?

Soluzione

Per i metodi e le funzioni, si può semplicemente sostituire il corpo della funzione con un avvertimento e una chiamata alla funzione preferita.

perl perllexwarn fornisce il seguente esempio:

 package MyMod::Abc;

 sub open {
     warnings::warnif("deprecated",
     "open is deprecated, use new instead");
     new(@_);
 }

 sub new {
     # ...
 }
 1;

Se si deprecando un intero modulo, messo l'avviso in un blocco BEGIN nel modulo.

Si può anche mettere le avvertenze nel metodo import (ad esempio Win32 :: GUI :: import ):. tutto dipende esattamente quello che vuoi fare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top