Perl kommer med en fil :: Finn modul som lar brukeren søke etter en fil . Fil :: Finn :: Søkefunksjonen går ned i underkataloger og besøker hver fil en gang , den sendes til en funksjon du oppgir. Siden Perl er et kryssplattform programmeringsspråk, kan funksjonen brukes på mange forskjellige operativsystemer . Instruksjoner
en
Import "File :: Finn " modul ved hjelp av " Bruk " søkeord . Alle Perl distribusjoner bør komme med på " File :: Finn " -modul , så det er ikke nødvendig å installere det separat : " bruke File :: Finn ; "
2
Skriv en filter funksjon siden "File :: Finn :: finn "-funksjonen faktisk ikke gjøre noen filtrering . Lag en filtrering funksjon som lagrer filer i en liste , skriver dem ut , sletter dem , flytter dem eller gjør noe annet du vil gjøre med filene . Filteret funksjonen tar ingen argumenter , og navnet på filen i dag besøkt av File :: Finn :: finner vil være i standard variabelen $ _ . I dette eksemplet filterfunksjon filtre filer basert på deres filnavn og et vanlig uttrykk : "sub filter { if ( . $ _ = ~ /\\ Html $ /i) { print" $ _ \\ n "; } }"
3
Ring " File :: Finn :: finne "-funksjonen , siden " bruk " søkeord importert alle funksjonene fra File :: Finn inn i den globale navnerommet . "Finn "-funksjonen tar to argumenter. Den første er en referanse til filter funksjon, syntaksen som ser litt rart .
4
Lag en referanse til "Filter "-funksjonen ved å bruke koden "\\ & filter " . Den omvendte skråstreken er referansen operatør , noe som betyr at det vil gjøre en referanse ut av hva er gått til det . Vanligvis utelates, er & funksjonen eller subrutinen prefiks, brukes for å betegne funksjoner. Den brukes bare som $ er for scalars , @ for lister og " %" for hasher .
5
Bruk det andre parameter for å finne basen katalogen til å søke . Dette bør enten være en absolutt sti eller gjeldende katalog , merket med en " . " . " finne ( \\ & filter " . "); "
6
Pass en anonym subrutine i stedet for en funksjon referanse. Den " sub " søkeord som gjør en anonym subrutine og returnerer en referanse til den, noe som er nyttig for en funksjon som File :: Finn :: finne hvis den funksjonen du ønsker er svært kort. Den holder all koden på ett sted, slik at leseren av koden ikke behøver å søke etter filterfunksjonen . Dette eksempelet vil bare skrive ut alle filene funnet, uten regex filter : "finn (sub { print" $ _ \\ n "; } " . "); "