You should always do
use strict; and
use warnings; -- it would have helped catch this error... Your
UserGetMiscAttributes call is storing the result in
%detail but the rest of the code is using
%Hash. Hopefully
Win32::AdminMisc will work for you with that change..