http://www.perlmonks.org?node_id=141705

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

The code below works great for me, but I would like to format the output of $list. so that it is lined up correctly in the textarea. Can I use a format command and how would that look?
my @arrinstr=(); my $list=""; while (@arrinstr = $sth4->fetchrow) { ($sec,$title,$seats)=@arrinstr; $csec=$sec; $ctitle=$title; $cdes=$seats; $list.="$csec,$ctitle,$cdes\n"; } print $query->textarea ({-name=>'INFO',-default=>$list,-cols=>'75',-ro +ws=>'5'});
Thanks,
Douglas
brantzdr@appstate.edu

Edited 2002-01-25 by Ovid

Replies are listed 'Best First'.
Re: Format question
by ZZamboni (Curate) on Jan 26, 2002 at 05:32 UTC
    You could use sprintf:
    $list=sprintf("%-10s %-30s %d\n", $sec, $title, $seats);
    Of course, you would need to adjust the widths of the fields according to the expected maximum lengths of the data. You should also use appropriate format types (I assumed here that $secv and $title are strings, and $seats is an integer. Different format specifiers may output the same values in different form).

    Side question: why do you copy $sec, $title and $seats to different variables? Unless you are doing something else that your snippet didn't show, it doesn't make much sense.

    --ZZamboni