recurQuery(0,0); my $cat_sth = $dbh->prepare("SELECT id, parentid, catname from categories WHERE parentid = ?"); sub recurQuery { my ($parentId, $level) = @_; $cat_sth->execute($parentId) or die $dbh->errstr; while (my $data = $cat_sth->fetchrow_hashref) { printf qq{ \n }, $data->{catname}, ' *' x $level, $data->{catname}, ; recurQuery( $data->{id}, $level+1 ); } }