Perl levereras med en fil :: Hitta modul som tillåter en användare att söka efter en fil . The File :: Sök :: hitta funktionen sjunker ner underkataloger och besöker varje fil en gång , går det till en funktion som du tillhandahåller . Eftersom Perl är ett plattformsoberoende programmeringsspråk , kan funktionen användas på många olika operativsystem . Instruktioner
1
Importera "File :: Find" modul genom att använda " Use" nyckelordet . Alla Perl distributioner ska komma med " File :: Sök " modul , så det är inte nödvändigt att installera det separat : " Använd File :: Sök , "
2
Skriv en filterfunktion sedan " File :: Sök :: hitta " funktionen faktiskt inte göra någon filtrering . Skapa en filtrerande funktion som lagrar filer i en lista , skriver ut dem , raderar dem , flyttar dem eller gör vad du vill göra med filerna . Filtret funktionen tar inga argument , och namnet på den fil som redan besöks av File :: Sök :: hitta kommer att vara i standard variabeln $ _ . I det här exemplet , filterfunktionen filter filer baserat på deras filnamn och ett reguljärt uttryck : " sub -filter {if ( . $ _ = ~ /\\ Html $ /i ) { print " $ _ \\ n " ;} } "
3
Ring " File :: Sök :: Sök" -funktionen , eftersom " Använd " nyckelordet importerat alla funktioner från File :: Find in i den globala namnrymden . Den " Sök " -funktionen tar två argument . Den första är en referens till den filterfunktion , syntax som ser lite udda .
4
Skapa en referens till " Filter " -funktionen genom att använda koden " \\ & filter " . Det omvända snedstrecket är hänvisningen operatör , vilket betyder att den kommer att göra en referens av vad som skickas till den . Vanligtvis utelämnas , är och funktionen eller subrutinen prefix , som används för att beteckna funktioner . Den används precis som $ är för skalärer , @ för listor och " % " för hashar .
5
Använd andra parametern för att hitta basen katalogen för att söka . Det ska antingen vara en absolut sökväg eller den aktuella katalogen , betecknas med ett " . " . " hitta ( \\ & filter " . " ) ; "
6
Passera en anonym subrutin istället för en funktion referens . Den " sub " nyckelordet gör en anonym subrutin och returnerar en referens till det , vilket är användbart för en funktion som File :: Sök :: hitta om den funktion du vill ha är mycket kort . Det håller all kod på ett ställe , så att läsaren av koden behöver inte söka efter den filterfunktion . Detta exempel kommer bara skriva ut alla filer som hittats , utan regex filter : " hitta ( sub { print " $ _ \\ n " ;} , " . " ) ; " Addera