stavo guardando in modi efficienti per leggere i file in Perl e sono imbattuto in questo molto interessante uno di linea:file di Fancy slurping in Perl
my $text = do { local (@ARGV, $/) = $file; <> };
La mia domanda è: Come funziona esattamente questo lavoro? Normalmente quando slurping un file hai impostato $/ = undef
, ma non vedo come si fa. Questo piccolo pezzo di codice si sta dimostrando molto difficile da avvolgere.
Quale sarebbe una ripartizione e una spiegazione semplificata per questo?
Ora che so come funziona, siamo davvero fantasiosi!
Non che questo codice abbia un uso reale; è solo divertente da capire e bello da vedere. Ecco un one-liner per estrarre più file contemporaneamente !!!
my @texts = map { local (@ARGV, $/) = $_; <> } @files;
perl consente di assegnare più variabili in un singolo compito (non so come viene chiamato correttamente): '($ a, $ b, $ c) = (1, 2)'. '$ c' qui finirebbe 'undef' – n0rd
Questo è orribile. Devi chiedere che cosa fa, quindi non duplicarlo – Borodin
Questa riga di codice sembra in realtà un pezzo di codice Perl comunemente usato. L'ho visto in più di un posto che è quello che mi ha portato a fare questa domanda. – tjwrona1992