Read that, didn't help too much. Just says use my and don't use local. I tried using local anyhow and that didn't fix the 'Global' error I got.
Class::DBI probably is the way to go...I figured someone had done what I was trying to do before.
Comment on Re: Re: Database hash/array mapping and OO
No, you need to read again and understand the scoping of lexical variables. Your my %columns delcaration is only good for the sub you declare it in. If you want it visible to both subs you need to declare it outside of them at the file scope. CwS explains this.