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.