1#!perl 2use strict; 3use warnings; 4 5sub zero 6{ 7 one('I'); 8} 9 10sub one 11{ 12 my $num = shift; 13 two(($num) x 2); 14} 15 16sub two 17{ 18 my ($a, $b) = @_; 19 three($a => is => $b); 20} 21 22sub three 23{ 24 my $uno = shift; 25 my $dos = shift; 26 my $tres = shift; 27 28 four( 29 H => 1, 30 He => 2, 31 Li => 3, 32 Be => 4, 33 ); 34} 35 36sub four 37{ 38 my %args = @_; 39 40 my $closure = sub { 41 my ($alpha, $beta, $gamma, $delta) = @_; 42 five($alpha + $beta + $gamma + $delta); 43 }; 44 $closure->(values %args); 45} 46 47sub five 48{ 49 die @_; 50} 51 52zero(); 53 54 55