my @squares := apply { $_ * $_ } 2..5; multi apply(&func, *$head, *@tail) { return func($head), apply(&func <== @tail); } #### my @squares = apply(sub{$_[0] * $_[0]}, \(2..5)); sub apply { my($sub, $refArray) = @_; return map {$sub->($_)} @$refArray; }