Perl wordt geleverd met een File :: Zoek module waarmee een gebruiker te zoeken naar een bestand . De File :: Zoek :: find functie afdaalt in submappen en bezoekt elk bestand eenmaal , doorgeven aan een functie die u verstrekt . Omdat Perl is een cross-platform programmeertaal , kan de functie worden gebruikt op vele verschillende besturingssystemen . Instructies Import 1 de " File :: Find" -module met behulp van de "Use " keyword . Alle Perl distributies moet komen met de " File :: Find" -module , dus het is niet nodig om deze afzonderlijk te installeren : " Gebruik File :: zoeken ; " kopen van 2 Schrijf een filter -functie, sinds de " File :: Zoek :: find " functie feitelijk geen filtering doen . Maak een filterfunctie die bestanden opgeslagen in een lijst , drukt ze af , verwijdert ze , beweegt hen of doet alles wat je wilt doen met de bestanden . Het filter -functie heeft geen argumenten , en de naam van het bestand dat momenteel bezocht door File :: Zoeken :: vinden zal zijn in de standaard variabele $ _ . In dit voorbeeld de filterfunctie filters bestanden op basis van de bestandsnaam en een reguliere uitdrukking : "sub filter { if ( . $ _ = ~ /\\ $ Html /i ) { print" $ _ \\ n " ; } } " < br > 3 Roep de " File :: Zoek :: find " functie , omdat de "Use " keyword geïmporteerd alle functies van File :: Zoek in de globale namespace . De functie " zoeken " heeft twee argumenten . De eerste is een verwijzing naar de filterfunctie , de syntax van die ziet er een beetje vreemd . 4 Maak een verwijzing naar de functie " Filter " door gebruik te maken van de code ' \\ & filter " . De backslash is de referentie- operator , wat betekent dat er een verwijzing te maken van wat wordt doorgegeven aan het. Meestal weggelaten , de & is de functie of subroutine prefix , gebruikt om functies te duiden . Het wordt gebruikt net als $ is voor scalairen , @ voor lijsten en " % " voor de hashes . 5 Gebruik de tweede parameter om de basis directory te zoeken te vinden . Dit moet ofwel een absoluut pad of de huidige directory , aangeduid met een " . " . " vinden ( \\ & filter , ' . ' ) ; " 6 Pass een anonieme subroutine in plaats van een functie referentie. De "sub " keyword maakt een anonieme subroutine en retourneert een verwijzing naar het, die nuttig zijn voor een functie als File is :: Zoeken :: vinden als de gewenste functie is erg kort . Het houdt alle van de code op een plaats , zodat de lezer van de code niet hoeft te zoeken naar de filterfunctie . Dit voorbeeld geeft als alle bestanden gevonden , zonder regex filter : " vinden ( sub { print" $ _ \\ n " ;} , " . " ) ; "
|