Sto cercando di scrivere un programma di utilità che passare attraverso un file che sarebbe simile a questa:Ottenere il codice e l'output di ritorno dal comando in Perl
# Directory | file name | action | # of days without modification to the file for the command to take action
/work/test/|a*|delete|1
/work/test/|b*|compress|0
/work/test/|c*|compress|1
Il mio script passerà attraverso il file di decidere se, per Ad esempio, ci sono file sotto/work/test/che iniziano con 'a' che non sono stati modificati negli ultimi 1 giorni e, in caso affermativo, li eliminerebbe.
Per questo, utilizzo il comando find. Esempio:
my $command = "find " . $values[0] . $values[1] . " -mtime +" . $values[3] . " -delete ;\n";
system ($command);
Tuttavia, mi è stato chiesto di recuperare il codice di ritorno per ogni passaggio per verificare che ogni passaggio funzionasse correttamente.
Ora, so che system() restituisce il codice di ritorno e i backtick restituiscono l'output. Ma come posso ottenere entrambi?
Vorrei usare [File :: Trova] (http://perldoc.perl.org/File/Find.html), [File :: Finder] (https://metacpan.org/pod/File :: Finder), [File :: Trova :: Regola] (https://metacpan.org/pod/File::Find::Rule), o simile invece di 'find'. Ciò ti permetterà di verificare il successo di ogni singolo 'unlink' invece del successo dell'intero comando' find'. – ThisSuitIsBlackNot