Sono molto nuovo in Perl e ho riscontrato di recente il seguente problema. Il mio codice Perl deve risiedere all'interno di un singolo file (viene chiamato da un altro programma di cui non ho il controllo). Ora desidero eseguire lo script con un flag (ad esempio, perl myscript.pl -T
per la modalità taint), sebbene inizialmente venga chiamato senza il flag. Come posso farlo, cioè come faccio a "impostare il flag" all'interno del file Perl?Creazione di script Perl * esecuzione automatica * con flag
Un'idea che ho avuto è quello di rendere il lancio di nuovo file stesso (dopo essere stato chiamato, senza bandiere), questa volta con la bandiera -T
(mediante l'emissione di un comando di shell come system($^X, "myscript.pl -T", @ARGS);
). Funzionerebbe? Qualche idea migliore?
se controlli 'myscript .pl' puoi impostare la modalità di contaminazione modificando la tua linea di shebang per includere '-T' ad es '#!/usr/bin/env perl -T' –
Quale comando viene usato per invocare lo script nell'altro programma? Se è qualcosa come '/ path/to/myscript.pl', puoi semplicemente aggiungere' -T' alla linea shebang. – ThisSuitIsBlackNot
un '-T' nella riga shebang non abilita necessariamente la modalità taint - se lo script è invocato con' perl' dalla shell senza '-T', si ottiene un errore irreversibile – mob