use strict; use warnings; use 5.014; sub groupsOf (&$@); open my $hostsFH, q{<}, \ <; close $hostsFH or die $!; sub groupsOf (&$@) { my $rcToRun = shift; my $groupsOf = shift; my $rcDoIt; $rcDoIt = sub { return $rcToRun->( map shift, 1 .. do { my $elems = scalar( @_ ); $groupsOf < $elems ? $groupsOf : $elems } ), @_ ? &$rcDoIt : (); }; return &$rcDoIt; }