c:\@Work\Perl\monks>perl -wMstrict -le "my %formats = ( 1 => ' %s ', 2 => ' %s ', 3 => ' %s', 4 => '%s', ); ;; for my $x ('a', 'bc', 'def', 'ghij', 'klmno') { printf qq{'@{[ $formats{length($x)} // '%4.4s' ]}' \n}, $x; } " ' a ' ' bc ' ' def' 'ghij' 'klmn'