PERL 5 - Kurs
UCHWYTY PLIKÓW
document.write(("" + getDateStr()+"").fontcolor("white"))
Spis treści
Strona główna
O języku Perl
Zmienne skalarne
Operatory
Tablice i listy
Tablice rozproszone
Wyrażenia warunkowe
Pętle
Operacje na zmiennych
Wyrażenia regularne
Procedury
Pliki, wejście/wyjście
Odwołania
Struktury danych
CGI
Pola formularzy
Odczyt danych
Generowanie strony
Standardowe wejście/wyjście oraz uchwyty plików
Co to są uchwyty plików
Perl oferuje możliwość odczytywania i zapisywania danych z/do standardowego wejścia i wyjścia. Standardowe wejście oznaczamy jako <STDIN>, wyjście jako .
STDIN jest specjalnym, wbudowanym uchwytem pliku reprezentującym standardowe wejście. Nawiasy nazywane operatorem wejścia służą do czytania danych z uchwytu. Zapis <STDIN> oznacza "czytaj dane ze standardowego wejścia". Przypisanie <STDIN> do zmiennej skalarnej:
$skalar = <STDIN>;
oznacza odczytanie całego wiersza danych ze standardowego wejścia (do momentu napotkania znaku nowej linii) i przypisanie go do zmiennej $scalar. Natomiast instrukcja:
@tablica = <STDIN>;
zapisze do tablicy @tablica wszystkie wiersze ze standardowego wejścia jako elementy tablicy.
Wyprowadzanie danych na standardowe wyjście
W celu wyprowadzenia danych na ekran monitora stosuje się funkcję print. Jest to najlepszy przykład wysyłania danych na standardowe wyjście, którym w tym przypadku jest monitor. Zapis:
print "To jest jakis tekst\n";
spowoduje wyświetlenie komunikatu "To jest jakis tekst". Ponieważ fukncja print domyślnie wysyła dane na standardowe wyjście, nie ma konieczności dodawania STDOUT. Zapis:
print STDOUT "To jest jakis tekst\n";
da dokładnie taki sam efekt jak zapis poprzedni. Słowo STDOUT jest tu zupełnie zbędne.
Uchwyty plików
Odczytywać i zapisywać dane można nie tylko ze standardowego wejścia i wyjścia, ale także z plików. Aby móc czytać dane z pliku należy utworzyć tzw. uchwyt pliku. Uchwyt ten tworzony jest podczas otwierania pliku za pomocą funkcji open:
open(PLIK, "sciezka_do_pliku");
Pierwszym argumentem tej funkcji jest nazwa uchwytu, która w dalszej części programu będzie jednoznacznie wskazywać na ten plik. Sciezka_do_pliku wskazuje lokalizację pliku.
Domyślnie funkcja open otwiera plik do odczytu. Aby móc zapisać lub dopisać dane do pliku konieczne jest zastosowanie znaku > lub >>:
open(PLIK, ">plik.txt"); # otwarcie pliku do zapisu
open(PLIK, ">>plik.txt"); # otwarcie pliku do dopisywania
Funkcja die
Funkcja die występuje niemal zawsze w połączeniu z funkcją open. Ma ona na celu zatrzymanie programu i wyświetlenie komunikatu o błędzie w przypadku, gdy otwarcie pliku zakończy się niepowodzeniem:
open(PLIK, "plik.txt") || die "Nie można otworzyć pliku";
Czytanie danych z pliku
Tak jak w przypadku odczytu danych ze standardowego wejścia, tak i tu stosujemy operator :
open(PLIK, "plik.txt") || die "Nie można otworzyć pliku";
$scalar = <PLIK>;
Po wykonaniu powyższej operacji zmienna $scalar będzie zawierać pierwszy wiersz z pliku plik.txt. powtarzając przypisanie uchwytu do skalara będziemy przypisywać kolejne linie z pliku. W celu przetworzenia wszystkich wierszy w danym pliku, często stosuje się pętlę while:
while ($scalar = <PLIK>) {
# operacje na zmiennej $scalar;
}
Pętla ta zakończy działanie dopiero po napotkaniu znaku końca pliku.
Zapis danych do pliku
Aby móc zapisać dane do pliku, najpierw trzeba otworzyć go z możliwością zapisu:
open(PLIK, ">plik.txt");
lub dopisywania:
open(Plik, ">>plik.txt");
Do przeprowadzenia operacji zapisu stosujemy funkcję print z dodatkową informacją na temat miejsca zapisu danych. Polecenie:
print PLIK "Dane do pliku";
powoduje zapis łańcucha "Dane do pliku" do pliku wskazywanego przez uchwyt PLIK.
Zapis i dopisywanie do pliku to dwie różne operacje. Pierwsza z nich kasuje poprzednią zawartość pliku i w jej miejsce wprowadza nowe dane, druga natomiast nie usuwa informacji z pliku, a nowe dane zostają dopisane na jego końcu.
Po zakończeniu operacji na pliku należy zamknąć uchwyt:
close PLIK;
Autor: Wiercioch Łukasz
Wyszukiwarka
Podobne podstrony:
C w7 pliki operacje we wy34 Pliki Operacje na plikach w PascaluBlender(jak załadować pliki)pliki typu comPAS pliki zdefiniowanecw08 pliki winapliki (3)plikiPLIKI (13)Pliki, struktury, komorkiPliki wsadowe, partycja, sektor, klaster, FAT, NTFSPorady Pliki systemoweplikiTropimy pliki tymczasowepliki ?IB2LibreOffice a pliki Microsoftu01 cw pliki wsadowe 1koza pliki satkaAnalizuje podejrzane pliki i adresy URLwięcej podobnych podstron