in reply to error creating hash of array

Another variant:

... my %HoA; push @{ $HoA{ $_->{TABLE_TYPE} } }, $_->{TABLE_NAME} for values %HoH; ...

Remap array to scalar if only one entry

... for( values %HoA ) { $_ = $_->[0] if @$_ == 1 } ...

Regards

mwa