in reply to Programmatic creation of iterated string

Here's a more general answer, though if you can wait for Perl 6, the weave (zip, or whatever) operator will be builtin or at least in a module instead of a hacked sub:
my $n = 30; print weave([map{$_%3?' ':"\n"}0..$n-1],[1..$n]); sub weave { my @t; { @$_ ? push @t, shift @$_ : return @t for @_; redo; } }