I'm answering not to your col_width code but to the input code. As long you don't need the arrays for other things you could write the input like below. This is far more readable and easier to maintain.
my %lists = (
'The Amazon is' => [ qw(hot tropical humid wet) ],
'The Sahara is' => [ qw(hot hot tropical big) ],
);