Procedury jako dane
Procedury anonimowe można przechowywać w zmiennych. Nie są one wykonywane, dopóki tego nie nakażę. Zamiast przechowywać wartości, przechowujemy działanie. Poniższa procedura anonimowa dodaje pierwsze dwa argumenty i zwraca wynik, ale dopiero wtedy, kiedy ją wykonam. Definiuję procedurę i zapisuję ją w zmiennej $add_sub
:
my $add_sub = sub { $_[0] + $_[1] };
W ten sposób mogę zdecydować, co się stanie, po prostu wybierając zmienną, która ma pożądane działanie. Gdybym nie dysponował takimi zmiennymi, zrobiłbym to za pomocą testów if-elsif
i rozgałęzień, ponieważ musiałbym zakodować „na sztywno” gałąź dla każdego możliwego wywołania procedury. Oto mały kalkulator, który obsługuje podstawowe operacje arytmetyczne. Przyjmuje trzy ...
Get Perl. Mistrzostwo w programowaniu now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.