in reply to Creating a table using cgi.pm - a unique problem

I haven't used cgi.pm in a long time, and I don't even remember using syntax like that (and come to think of it, the syntax as shown doesn't even make much sense in nesting terms, I think there's some typos in there), but I would have to guess that this sort of structural change would do it:

$cgi->Tr({ -align=>LEFT, -valign=>TOP}, [ td( { }, [ $cgi->a( {-href=>"..", -target=>"_new"} ) . $cgi->img(..) ] ), td( { -OnClick=>"javascript:dothis()" }, [ $cgi->a( {..}, $value1 ), $cgi->hidden( -name=>'name2', -value=>'$value2' ). $cgi->a( $value2), $cgi->hidden( -name=>'name3', -value=>'$value3' ). $cgi->a( $value2) ]), ]);

Basically, split that td clause into two seperate ones, one without the javascript attribute containing the first td, and one with it containing the other three.