Szukałem w skutecznych sposobów do odczytu plików w Perl i natknąłem się na to bardzo interesująca Wkład:Fancy plik slurping w Perlu
my $text = do { local (@ARGV, $/) = $file; <> };
Moje pytanie brzmi: Jak dokładnie to działa? Zwykle podczas slurowania pliku ustawionego na $/ = undef
, ale nie widzę, jak to robi. Ten mały kawałek kodu okazuje się bardzo trudny do objęcia głowy.
Jaki byłby uproszczony podział i wyjaśnienie tego?
Teraz, gdy już wiem, jak to działa, poznajmy się naprawdę!
Nie chodzi o to, że ten kod ma jakiekolwiek rzeczywiste zastosowanie; Po prostu fajnie jest rozgryźć i spoko patrzeć. Oto jedna liniówka, która wyśle kilka plików jednocześnie !!!
my @texts = map { local (@ARGV, $/) = $_; <> } @files;
perl pozwala przypisać wiele zmiennych w jednym zadaniu (nie wiem jak jest poprawnie nazwany): '($ a, $ b, $ c) = (1, 2)'. '$ c' tutaj kończy się' undef' – n0rd
To jest okropne. Musisz zapytać, co robi, więc nie duplikuj go. – Borodin
Ta linia kodu wydaje się być powszechnie używanym fragmentem kodu Perla. Widziałem to w więcej niż jednym miejscu, co skłoniło mnie do zadawania tego pytania. – tjwrona1992