|
Poniżej przedstawiony zostanie program, który wyświetli zawartość pliku moje.txt.
#!/usr/local/bin/perl # # # # Program otwierający plik /home/stelmik/moje.txt, odczytujący go, po czym go wyświetla i na koniec zamyka. $plik = '/home/stelmik/moje.txt'; # nazwa pliku open(DANE, $plik); # otwarcie pliku do odczytu @linie = <DANE>; # przekazanie zawartości pliku do tablicy @linie close(DANE); # zamknięcie pliku print @linie; # wyświetla tablica Użyta funkcja open w programie ma postać ogólną
open(wskaznik_pliku, $nazwa) Otwiera ona plik do odczytu, określony przez zmienną $nazwa. Wskaznik_pliku jest wskaźnikiem do pliku, umożliwiającym w dalszej części programu dokonywanie operacji na załadowanym pliku. Rozszerzenia sh (systemy Unix, Linux) pełnią bardzo przydatną rolę w lokalizacji plików. Jednak wpisanie wartości '~/moje.txt' do zmiennej $plik nie wywoła pożądanego efektu, gdyż aby nazwa była czytelna należałoby ująć ją w "łamane" nawiasy, tj. < >. Teraz w celu odwołania się do pliku moje.txt, który znajduje się w katalogu domowym można napisać:
$plik = '<~/moje.txt>'; Jest to poprawna, trochę skrócona forma. Przedstawiony przykład otworzył plik tylko do odczytu. W jaki sposób można coś do niego zapisać? Otóż funkcja open umożliwia: open(PLIK, $nazwa); # otwarcie pliku do odczytu open(PLIK, "<$nazwa"); # otwarcie pliku do odczytu również open(PLIK, ">$nazwa"); # otwarcie pliku do zapisu open(PLIK, ">>$nazwa"); # otwarcie pliku w celu dokonania zmian (dopisania, itp.) Aby zapisać jakąś informację w pliku należy wpisać komendę:
print PLIK "Ta linia znajdzie się w tym pliku. "; Można również używając poniższych komend, otworzyć standardowe wejście (np. klawiatura) lub standardowe wyjście (np. ekran monitora): open(INFO, '-'); # powoduje otwarcie standardowego wejścia open(INFO, '>-'); # powoduje otwarcie standardowego wyjścia Następna linia przykładu, tj.:
@linie = <DANE>; przyporządkowuje każdą linię pliku do kolejnego elementu tablicy @linie. Gdyby zamiast @linie zostało napisane $linie, wtedy zapisana byłaby tylko jedna linia z pliku. Funkcja close(wskaznik_pliku) zamyka dostęp do pliku. W przykładzie jest to linia:
close(DANE);
|