Ciao,

per prima cosa correggi

$total_page++ if ( scalar(@topics) % 10 != 0);

con

$total_page++ if ( scalar(@topics) % $topics_per_page != 0);

poi... come stampi la pagina?
penso che il problema sia li, in un mancato controllo sulla fine dei topic