Edit file File name : demo_cols.pl Content :#! /usr/bin/perl -w use Text::Reform; # Easy when data already in columns... @name = qw(Tom Dick Harry); @score = qw( 88 54 99); @time = qw( 15 13 18); print form '-----------------------------', 'Name Score Time', '-----------------------------', '[[[[[[[[[[[[[[ ||||| ||||', \@name, \@score,\@time; print "\n"x2; # Not so easy when data in rows... @data = ( { name=>'Tom', score=>88, time=>15 }, { name=>'Dick', score=>54, time=>13 }, { name=>'Harry', score=>99, time=>18 }, ); # The ugly way... print form '-----------------------------', 'Name Score Time', '-----------------------------', '[[[[[[[[[[[[[[ ||||| ||||', [map $$_{name}, @data], [map $$_{score}, @data], [map $$_{time} , @data]; print "\n"x2; # The nice way... print form '-----------------------------', 'Name Score Time', '-----------------------------', '[[[[[[[[[[[[[[ ||||| ||||', { cols => [qw(name score time)], from => \@data }; @data = ( [ 15, 'Tom', 88 ], [ 13, 'Dick', 54 ], [ 18, 'Harry', 99 ], ); print "\n"x2; # Works for arrays too... print form '-----------------------------', 'Name Score Time', '-----------------------------', '[[[[[[[[[[[[[[ ||||| ||||', { cols=>[1,2,0], from=>\@data }; Save