O'Reilly logo

Perl. Mistrzostwo w programowaniu by Brian d foy

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required