in reply to Reopen a class, add methods ?

I recommend changing the package for the reasons I already gave.

However, instead of

package Tk::HList; sub updaterow { ... } package main;

I'd use

{ package Tk::HList; sub updaterow { ... } }

The package directive will only be effective until the end of the block, at which time the package will revert to what it was before the package directive was encountered.

Hardcoding main will cause code to fail once ported to Apache::Registry, or if the code is copied/moved into a module.