use strict; my @lines = ; my $maxsize = 0; map {chomp; $maxsize = ($maxsize>length)?($maxsize):(length)} @lines; print "max size: $maxsize\n"; my $windowSize = $maxsize +4; my $bar = '*' x $windowSize . "\n"; foreach (@lines) { # calculate space between this line and window border my $space = $maxsize - length($_); # determine if the space is an odd or even number my $odd = $space%2; # half the space will go on the left, half will # go on the left (plus one if it was odd). my $spacer = int($space/2); print($bar); print('* ' . ' ' x $spacer . $_ . ' ' x ($spacer + $odd) . " *\n"); print($bar); } __DATA__ some lines that are of different sizes Some small really small. ----------------some large--------------------- --------------------------------------------------some huge-------------------------------------------------- ...