Moduły i obiekty

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Obiektowość w perlu - własna i cudza

  1. Sprawdź, jak działa operator bless.
  2. Czy do funkcji można przekazać zmienną w taki sposób, aby za jednym zamachem przekazać wartość zmiennej, oraz jej nazwę z kodu źródłowego? Przemyśl pytanie, zanim odpowiesz... :)
  3. Napisz prostą klasę, która przechowuje licznik całkowity. Napisz konstruktor, oraz metody inc oraz dec, które odpowiednio zwiększają i zmniejszają licznik pamiętany w obiekcie. Napisz także program demonstracyjny korzystający z utworzonej przez ciebie klasy.
  4. Napisz prostą klasę, która dba o to, aby była singletonem, to znaczy, aby było możliwe utworzenie tylko jednej instancji tej klasy. Jak nietrudno się domyślić, takie klasy mogą mieć szerokie zastosowanie. Zaimplementuj jedynie kod, który odpowiada za kontrolę singletowości.
  5. Napisz klasę - jak w pewnych klasycznych zadaniach z obiektowości - implementującą obiekt Figura, a następnie klasy potomne: Prostokąt, Okrąg, Elipsę i Pięciokąt. Zadbaj o to, aby klasy te umiały wyliczyć swój obwód i średnicę, oraz jeżeli chcesz się wyżyć geometrycznie - zaimplementuj procedurę testującą, czy jeden obiekt zawiera się całkowicie w drugim (np. jakaś metoda contains, czy coś w ten deseń).
  6. Zapoznaj się z działaniem modułu Data::Dumper. Napisz przykładowy program, korzystający z cech obiektowych tego modułu.
  7. Sprawdź, jak wybór struktury przechowującej klasę wpływa na jej użyteczność. Zaimplementuj klasy oparte na zmiennej skalarnej, na tablicy oraz na haszu. Która z nich jest według ciebie najszybsza i jednocześnie najbardziej elastyczna?
  8. Zapoznaj się z API udostępnianym przez klasę Text::Wrap i napisz program demonstrujący jej możliwości.
  9. Zapoznaj się z dokumentacją dotyczącą klasy DBI. Napisz program, który za pomocą DBI sprawdza, jakie drivery baz danych są zainstalowane w systemie i dostępne przez API perla udostępniane przez moduł DBI.
  10. Zapoznaj się z API udostępnianym przez moduł Pod::Parser. Korzystając z tego modułu możesz łatwo napisać własny parser do systemu dokumentacji perla, opracowując nawet nowe polecenia PODa. Praca ta jest warta świeczki, ponieważ tradycyjny parser dokumentacji POD jest bardzo prymitywny, i przydałoby się dodać do niego parę funkcji... Przygotowany moduł, lub system dokumentacji - zależnie od swojego rozmachu i jakości, może realnie wesprzeć społeczność perlową, a wam dać okazję do zapisania się nieśmiertelnymi zgłoskami w historii informatyki światowej. :)
  11. * Zapoznaj się z dokumentacją dotyczącą wiązania zmiennych - tie. Jest to zadanie dla hardkorowców, maniaków i ludzi nienormalnych, zatem możesz je spokojnie ominąć. Dla tych, którzy nie boją się wyzwań, zadanie polega na tym, aby zrobić zamianę znaczenia znaku + oraz - w perlu. Tak jest, NALEŻY spowodować, aby kod: my $a = 1; my $b = 2; my $c = $b + $a; my $d = $b - $a; dał wyniki $c == 1 oraz $d = 3. JEST TO MOŻLIWE. Ostrzegam, że to zadanie dla wybranych. Wskazówka: obsługa przeciążeń operatorów za pomocą TIE. Jest to element zaawansowanego programowania obiektowego.
  12. Zapoznaj się z archiwum CPAN, a w szczególności z modułami: Acme::Drunk, Acme::EyeDrops, Acme::Yoda, Acme::Don't, Acme::Palindrome, Text::Lorem, Lingua::Tolkien::BURL, Acme::Bleach
Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.