for my $nnot ( map { $solution[-1] + $_, $solution[-1] - $_ } nmap { $_ if ($availableIntervals[$_] > 0) } (1 .. 11) ) { #### sub nmap(&@){ my $rout = shift; # get mapping routine my @list = (); # output list my $curr; # current result for (@_) { $curr = $rout->($_); # get result if (defined $curr) { # if $curr is defined push @list, $curr; # add it to the list } } return @list; }