Perl kommer med en fil :: Find modul, der giver brugeren mulighed for at søge efter en fil. Fil :: Find :: find funktionen ned i undermapper og besøger hver fil én gang , passerer det til en funktion, du giver. Da Perl er en cross- platform programmeringssprog, kan funktionen bruges på mange forskellige operativsystemer. Instruktioner
1
Import "File :: Find "-modulet ved hjælp af "Use " søgeord . Alle Perl distributioner bør komme med "File :: Find "-modulet , så det er ikke nødvendigt at installere det separat : "brug File :: Find ,"
2
Skriv et filter funktion, da "File :: Find :: find "-funktionen faktisk ikke gøre nogen filtrering. Opret en filtrering funktion, der gemmer filer på en liste , udskriver dem , sletter dem , flytter dem eller gør hvad du ellers vil gøre med filerne. Filteret funktion tager ingen argumenter , og navnet på den fil besøgt af File :: Find :: find vil være i standard variablen $ _ . I dette eksempel filterfunktionen filtrerer filer baseret på deres filnavn og et regulært udtryk : " sub filter {if ( . $ _ = ~ /\\ Html $ /i ) { print" $ _ \\ n " ;} }" < br >
3
Ring til "File :: Find :: find "-funktionen , da "Use " søgeord importeret alle de funktioner fra File :: Find ind i den globale namespace . "Find" funktion tager to argumenter. Den første er en reference til filteret funktion, syntaks , som ser lidt mærkeligt .
4
Opret en henvisning til " Filter" funktion ved at bruge koden " \\ & filter" . Den omvendte skråstreg er henvisningen operatør , hvilket betyder at det vil gøre en reference ud af , hvad der er gået til den. Normalt udelades, og er den funktion eller subrutine præfiks , der anvendes til at betegne funktioner. Det bruges ligesom $ er for skalarer , @ for lister og " %" til hashes .
5.
Brug den anden parameter for at finde basen biblioteket for at søge . Det skal enten være en absolut sti eller det aktuelle bibliotek , betegnet med et " . " . "find ( \\ & filter , ". ") ,"
6
Pass en anonym subrutine i stedet for en funktion reference. Den " sub " søgeord gør en anonym subrutine og returnerer en reference til det, som er nyttig for en funktion som File :: Find :: finde, hvis den funktion, du ønsker, er meget kort . Det holder hele koden på ét sted, så læseren af koden ikke behøver at søge efter filterfunktionen . Dette eksempel vil bare udskrive alle fundne filer , uden regex filter: "find (sub { print" $ _ \\ n "; }" . "); "