my $i = 0; my $sub = 'sub { $array' . join '' => map {'[$_[' . $i++ . ']]'} 1 .. $dim; $sub .= ' = $_[-1] }' . "\n";