sub line { my @a1 = @_; my @b; push @b, " 1"; push @b, $a1[$_] + $a1[ $_ - 1 ] foreach ( 1 .. $#a1 + 1 ); return @b; } my @b = qw(1 1); my $s = 100; print " " x ($s), " 1\n"; foreach ( 2 .. shift ) { my $l = join " ", @b; print " " x ( $s - ( length $l ) / 2 ), "$l\n"; @b = line(@b); shift @b; }