in reply to Uninitialized Value in Sort

The "uninitialized value" is because ->{acct_name} isn't defined, which you can see in your reply of the Dumper output ... so the question is why that first array element from getActiveUser() doesn't have all the data it should ... Maybe a reference issue where somewhere else in the program, between calls to this sort code, you actually modify $activeUserAccts[0] somewhere?
... Ah -- yes. Note that you have -variable=>\$activeUserAccts[0] in the $acct_frame->Optionmenu() call ... that's what's going to be destorying/overwriting in some way the first BPP::ACCOUNT hashref.


The other part, Can't set -options to `ARRAY(0x1d1d0dc)' ... might be caused by the first issue. do confirm, do this (the above error might be causing a malformed data structued; note thet Tk::Optionmenu wants something like -options => [[jan=>1], [feb=>2], [mar=>3], [apr=>4]]):
my $opts = [map {[$_->{acct_name}=>$_->{acct_id}]} @activeUserAccts]; print Dumper $opts; my $active_user_acct = $acct_frame->Optionmenu(-options=>$opts, -comma +nd=>sub {},-variable=>\$activeUserAccts[0], -width=>25 )->grid(-row=> +3, -column=>1,-sticky=>'nw');