Przejdź do zawartości

Perl/Ponowne użycie kodu (moduły)

Z Wikibooks, biblioteki wolnych podręczników.
Poprzedni rozdział: Opis wyrażeń regularnych
Następny rozdział: Obiekty

Informacje ogólne

[edytuj]

Moduły Perla (w formie plików z rozszerzeniem .pm) są zwykłymi plikami z kodem Perla, który może być używany w wielu programach. W Internecie jest zbiór takich modułów, nazywany CPAN (Comprehensive Perl Archive Network) pod adresem http://cpan.org. Wiele z tych modułów jest standardowo instalowanych razem z Perlem, jednak pozostałe trzeba osobno ściągnąć i zainstalować.

Istnieją setki modułów Perla, robiących wszystko od tworzenia plików tymczasowych po wysyłanie zapytań do strony amazon.com. Dzięki modułom można błyskawicznie pisać potrzebne aplikacje, jeśli tylko wiesz jak znaleźć, zainstalować i użyć odpowiednich modułów. Jeśli chcesz napisać swój własny modul, sprawdź na CPAN, czy taki jeszcze nie istnieje, by niepotrzebnie nie marnować czasu.

Moduły perla mogą być pisane w dwóch stylach:

  1. Obiektowo
  2. Funkcyjnie

Niektóre z nich jednak używają obydwu.

Obiektowych modułów używa się w taki sposób:

use Foo;
my $foo = Foo->new();
print $foo->bar;  #wywołaj metodę bar obiektu foo i wypisz wynik.

Funkcyjnych modułów używa się w taki sposób:

use Foo qw/bar/; # Importuj podprogram o nazwie bar.
print bar();

Instalacja modułu

[edytuj]

Znajdź potrzebny moduł na http://cpan.org i ściągnij archiwum .tgz. Zdekompresuj i wypakuj zawartość:

tar -zxvf Modul.tgz

Wejdź do katalogu i działaj zgodnie z instrukcjami w pliku README lub INSTALL.

Jeśli masz zainstalowany program cpan, możesz go użyć z linii poleceń, by automatycznie zainstalować moduł.

sudo cpan -imt Modul::Ktory::Potrzebuje

Pisanie własnego modułu

[edytuj]

Moduły Perla różnią się od skryptów Perla w dwóch aspektach. Zamiast linijki "#!/sciezka/do/perla" na początku, zawierają:

package Moj::Modul;

Kod modułu musi kończyć się dodatnią wartością. Zwykle na końcu dodawane jest:

1;

Oto przykład prawidłowego modułu Perla:

package Moj::Pierwszy::Modul;

1;

Przykład

[edytuj]

Tworzymy plik o nazwie Przyklad.pm i wypełniamy go kodem:

package Przyklad;
use strict;
use base "Exporter";
our @EXPORT = qw/hello_world/;

sub hello_world
{
   print "hello, world!\n";
}

1;

Możemy sprawdzić poprawność składni poleceniem:

perl -c Przyklad.pm

To powinno wypisać "Przyklad.pm syntax OK" jeśli wszystko jest dobrze. W przeciwnym wypadku popraw błędy na podstawie tego co polecenie wypisuje.

Testujemy działanie modułu skryptem Perla:

#!/usr/bin/perl

use Przyklad qw/hello_world/;

hello_world();

exit;

Voilá! Napisałeś pierwszy moduł Perla.

Tworzenie modułu w stylu CPAN

[edytuj]

Moduły w stylu CPAN mają testy i mogą być wbudowane w bibliotekę Perla.

Ściągnij i zainstaluj Module::Starter z CPAN. Pojawi się nowe polecenie 'module-starter', pozwalające utworzyć szablon modułu. Użyj polecenia:

module-starter --module=Moj::Modul, Moj::Inny::Modul, --author="Twoje Imię" --email="twoj@e-mail.com"

Zostaną stworzone odpowiednie katalogi i kilka skryptów. W katalogu lib znajdują się moduły, które edytujesz. W katalogu 't' możesz umieścić testy poprawnościowe. Aby zainstalować moduł, wpisz:

>perl Makefile.PL
>make
>make test
>sudo make install
Poprzedni rozdział: Opis wyrażeń regularnych
Następny rozdział: Obiekty