12. Podprogramy i pakiety
Perl oferuje możliwość programowania modułowego i bibliotek.
12.1. Podprogramy
Perl może zawierać funkcje, posiadające parametry i zwracające wartości.
Poniżej przedstawiono szkielet :
sub sub1
{
local($param1,$param2) = @_;
# zrob costam
$value;
}
Zaś wywołanie może mięć postać:
$return_val = do sub1("to jest","test");
Słowo kluczowe do można zastąpić znakiem &. I jest to metoda polecana:
$return_val = &sub1("to jest","test");
Trzeba mięć na uwadze kilka rzeczy pisząc funkcje. Parametry umieszczane
są jako wektor @_. Ponieważ wszystkie zmienne domyślnie są globalne,
użyto tu funkcji local() w celu skopiowania wartości pod zmienne
lokalne. Perl posiada konstrukcje return, która może być użyta
eksplicite do zwrócenia wartości. Jest to zwykle niepotrzebne, gdyż
zwracana wartością jest wynik wykonania ostatniej linii procedury. Zatem
jeśli chcemy, żeby funkcja zwracała 0, jako ostatnia linie piszemy po
prostu 0;
12.2. Pakiety
Perl ma bibliotekę funkcji, które mogą być używane w skryptach.
Odpowiednikiem #include z C jest tu require. Na przykład dołączenie
funkcji getopt:
require 'getopts.pl';
&Getopts('vhi:');
if ($opt_v) { print "Wlaczony jest tryb sledzenia\n"; }
Zamiast require można użyć use. Wywołania funkcji nie muszą być wtedy poprzedzone
nazwą pakietu:
use Cwd;
$here = getcwd();
zamiast
require Cwd;
$here = Cwd::getcwd();
Można oczywiście tworzyć własne biblioteki.
Bogaty zestaw pakietów można znaleźć w
CPANie
12.2.1 Pakiety związane z WWW
Do standardowej dystrybucji Perla dołączony jest pakiet CGI, dzięki któremu
można obsługiwać formularze. Ponadto w CPANie można znaleźć pakiety HTML do
obróbki stron HTML, URI oraz całą bibliotekę LWP (lib-wwwpl).