in reply to strange args format in module sub

The line my ($class,%db_info,$ID) = @_, specifically the %db_info part, is the problem. The hash gobbles up all of the values that it can from the parameter list -- even if the number of parameters is odd. Thus, %db_info is getting one key ("1") set, and $ID is left with nothing to read from @_.

The solution is to move %db_info to after $ID, though it's unclear from what you wrote what %db_info is supposed to do or is used for. If you're thinking that it's the Database object -- it's not. The $class variable is a reference to the Database object in question.

By the way, the phrase "doesn't work" should be stricken from the English language, in my opinion. Being a little more specific always helps. ;>

perl -pe '"I lo*`+$^X$\"$]!$/"=~m%(.*)%s;$_=$1;y^+*`^ ve^#$&V"+@( NO CARRIER'