Przejdź do zawartości

Perl/Ćwiczenie 3

Z Wikibooks, biblioteki wolnych podręczników.
Poprzedni rozdział: Ćwiczenie 2
Następny rozdział: Ćwiczenie 4

A. Czytanie i zapisywanie do plików

[edytuj]
  1. Napisz program do czytania pliku z dysku i zapisywania go jako nowego pliku tekstowego. (Upewnij się, że nie pracujesz z ważnym dokumentem!)
  2. Spróbuj ściągnąć książkę ze strony [1] by sprawdzić czy twój program działa prawidłowo w przypadku dużych plików tekstowych.

B. Użycie wyrażeń regularnych do szukania tekstu

[edytuj]
  1. Dostosuj swój program do kopiowania tylko linii zaczynających się od wyrażeń typu "Chapter 1" lub podobnymi oznaczeniami.
    • Spróbuj zidentyfikować każdy numer rozdziału i wykonać proste działania matematyczne na nim.
    • Wyświetl numery rozdziałów wraz liczbą linii, które rozdział zawiera.
  2. Wykorzystaj wyrażenia regularne aby znaleźć powtarzające powtarzające się słowa. Zaznacz, kiedy powtórzenia różnią się wielkością liter w słowie.
  3. Spróbuj znaleźć słowa zaczynające się na "de" i kończące się na samogłoskę. Napisz wyszukiwanie znajdujące liczby w tekście, nawet zawierające miejsca dziesiętne, znaki "-" i podobne, jeżeli są zapisane jako tekst.
  4. Jak dużo jest wykrzyknień w tekście? Ile pytań?

C. Wykonywanie polecenia wyszukaj i zamień

[edytuj]
  1. Zmodyfikuj program do kopiowania plików tak aby wyszukiwał każde wystąpienie danego słowa i zamieniał je na inne w pliku wyjściowym. Sprawdź, czy program działa prawidłowo. Czy możesz mu powierzyć ważne dokumenty?
  2. Napisz program do zamieniana pierwszej litery zdania na wielką i przetestuj go. Upewnij się, że sprawy nie psują tego znaki w liczbach, skrótach czy tytułach.
  3. Napisz program do wyszukiwania liczb w książce, po czym dodaj do każdej liczby 10. Napisz program do wyszukiwania wyrażeń w nawiasach (10+3/2) i zamień je na ich wyniki (11.5). Sprawdź, czy program nie robi niczego niebezpiecznego kiedy wpiszesz kilka linijek (print "Witam";) w kodzie skryptu.

D. Test twojego programu

[edytuj]

Używając modułu Time::HiRes lub innego modułu testującego, zmodyfikuj swoje programy, by wyświetlały czas jaki zajęło ich działanie.

Spróbuj użyć systemu testującego, by zidentyfikować, która linia kodu kosztuje komputer najwięcej czasu w twoich programach. Która linia kodu wykonuje sie najczęściej?

E. Połączenie wszystkiego

[edytuj]

Napisz program, który szuka katalogu dla plików, które pasują do danego wyrażenia regularnego. Pokaż, jak długo działał program dla poszczególnych zestawów katalogów.

Zmodyfikuj program, by wyszukiwał chętniej drzewa katalogów niż tylko jeden katalog.

Przetestuj jak skomplikowane żądania wyszukiwania oddziałują na czas potrzebny do wyszukania. Zobacz, czy możesz wyszukać wyrażenie regularne, które nigdy się nie kończy (naciśnij ctrl-c, by zatrzymać zajęty program). Spróbuj przepisać wyrażenie, by wykonać tą samą pracę krócej.

Odpowiedzi

Poprzedni rozdział: Ćwiczenie 2
Następny rozdział: Ćwiczenie 4