in reply to CGI table rows from an array

I have to run off to work in the lab, but here is some snippets from some cgi stuff I use. It is from a book by Lincoln Stein called "Official Guide to Programing with CGI.pm " and has been a handy book. In this example, it goes through some hashes and creates a first entry of a link, then puts other values from the hashes into a list. then the list with a td header is pushed onto a list called @rows. The last line of the table creates the table rows including the column header. I tried looking for examples in perldoc CGI but didn't find it in there.
#!/usr/bin/perl use CGI ':standard',':html3'; foreach $key(sort(keys %ph_isv)){ $key_link = '<a href=../cgi-bin/partgraph?part='.$key.'>'.$key.'</ +a>'; @data = ($key_link,$ph_isv{$key},$ph_oos{$key},$aa_inprg{$key},$aa +_hand{$key},$aa_redir{$key},); push @rows,td(\@data); } @col_head = ('Partition', 'In Service','Out of Service','In Progress', + 'Handled', 'Redirected'); print table({-border=>'', -align=>CENTER}, caption(strong($caption)), TR(td({-colspan=>1},[' ']),td({-colspan=>2, -align=>CENTER},[ +'<b>Phones</b>']),td({-colspan=>3, -align=>CENTER},[ '<b>Auto Attenda +nt</b>'])), TR([th(\@col_head),@rows]) ) ;