Ho ereditato del codice perl che ovviamente non usa né rigidi né avvisi e continuo a utilizzare variabili non inizializzate e simili.Sezione codice staffaggio in uso strict/no strict?
vorrei racchiudere le sezioni di codice che sto modificando in questo modo:
use warnings;
use strict;
... my code changes and additions ...
no strict;
no warnings;
E che sembra funzionare, ma sto avendo problemi di decifrare ciò che the perldoc on use significa che quando si dice che questi sono direttive del compilatore che importano nell'attuale "scope scope". Significa che qualsiasi scope può avere un use strict
spaiato con un no strict
? Lo no strict
alla fine dell'ambito globale annulla essenzialmente il significato di use strict
in precedenza nello stesso ambito?
Confermerò che questa è una buona idea per * temporaneamente * lavorare con il codice esistente. Ancora meglio sarebbe mettere le tue aggiunte in funzioni in un file di libreria separato. Alla fine vorrai portarlo tutto sotto rigoroso. – Schwern
Qualcuno che non usa 'strict strict' ovviamente non consente un facile incapsulamento del codice ... Devo aggiungere alle loro oltre ventisette hash globali, vedi ... – stevesliva
Sì, è frustrante, ma non previene da usare le subroutine della libreria. Puoi fare riferimento alle loro globali con '% main :: blah' (assumendo che sia nel pacchetto principale). Ancora meglio, passa le loro globali che devi modificare nelle subroutine per riferimento: 'some_new_sub (\% blah)'. Impedirà al loro pasticcio globale di infettare nuovo codice. All'inizio questo sarà disordinato, ma ti darà un'idea migliore di quale codice ha bisogno di quali dati. Attraverso tutto questo, il modello del metodo di estrazione sarà il tuo strumento più forte. – Schwern