Ett av Perl motton är TIMTOWTDI ( uttalas "Tim toady " ) . Det är en förkortning som står för " det finns mer än ett sätt att göra det . " Precis som allt annat i Perl , det finns många sätt att fånga standard in . Bland dem är en genväg för att läsa alla rader i en fil och gör något med dem individuellt . Eftersom detta är en vanlig åtgärd i Unix -filter - liknande program , det används mycket ofta i Perl program . Instruktioner
1
Använd " vinkel " operatör . Perl har fyra filehandles öppna som standard : . STDIN , stdout , stderr och DATA , varav STDIN är standard in handtaget , som används för att fånga standard in
2
Utnyttja vinkeln operatören att läsa en enda rad från filehandle skickas till den , och antingen lagra i standard $ _ variabel eller använda den som den högra sidan av ett uppdrag uttryck . Den " vinkel" operatör är en filehandle omgiven av mindre än och större än symboler, även hänvisade till som " vinkeljärnen . " " $ a = , " Addera 3
Använd vinkeln operatör i en while-slinga . Vinkelfästet Operatören bör vara det enda i while-slinga s boolska uttryck vid användning av fästvinklar i en while-slinga . Varje gång while-slingan körs , kommer den läsa en rad och tilldela den till $ _ operatören . När det inte finns fler rader att läsa , kommer while-slingan avslutar : " while ( ) { segrare , # Chomp $ _ variabla tryck; # Skriv ut $ _ variabeln } "
4
Tilldela vinkel operatör till en lista . Tilldela resultatet av vinkeln operatören en lista är som att säga " lagra alla raderna i detta filehandle till denna lista . " När du tilldelar vinkeln operatör till en lista , är en annan genväg utförs som tilldelar alla rader av input till listan : " @ my_list = ; "
5
Läs från STDIN filehandle hjälp läsfunktionen . Vinkelfästet läser bara kompletta linjer , och eftersom detta kanske inte är vad du vill göra , kommer läs -funktionen låter dig läsa något belopp av byte till en variabel . Det tar tre parametrar: filehandle , variabeln att lagra den i och antalet byte som ska läsas . Följande exempel läser 10 bytes in $ buffert : " läsa ( STDIN , $ buffert , 10 ) ; " Addera