Penso di aver riscontrato un errore in Params::Validate, ma non sono sicuro di aver identificato correttamente il pezzo di codice problematico. Il codice in questione non è riuscito a passare le eccezioni sulla catena (utilizzando Try::Tiny), quindi ho iniziato il debug e ho scoperto che una classe utilizzata all'interno del blocco try
ha un distruttore. Questo distruttore chiama i metodi dell'oggetto che usano Params::Validate
e esaminando Validate.pm
source Vedo un eval
senza la localizzazione [email protected]
, cioè il globale [email protected]
viene sovrascritto.
Ora vedo due opzioni:
Params::Validate
dovrebbe sempre localizzare[email protected]
e quindi si tratta di un bug che devono essere segnalati.- Il bug è nella classe in questione, perché non dovrebbe usare
Params::Validate
in un distruttore.Params::Validate
può rimanere com'è ora.
Quale è? Come dovrei gestire questa situazione?
PS: Penso che i moduli CPAN dovrebbero essere solidi come roccia e né rompere se stessi né il loro ambiente, da qui il titolo della domanda.
Per essere precisi, è utilizzato nel nostro codice quadro e il mio reparto non è il responsabile per il framework. Quindi, sì, la mancanza di test, ma non del tutto da parte mia o del collega che ha scoperto il problema, aveva provato il suo codice e si chiedeva perché le sue eccezioni non si propagassero. –