Before glob assignment ---------------------- *main::a *main::b | | | +-------+ +-------+ | +--> | Glob | | Glob | <--+ +-------+ +-------+ +-------+ +-------+ | GP ----> | GP | | GP | <---- GP | +-------+ +-------+ +-------+ +-------+ +-- ARRAY | | ARRAY --+ +-------+ | +-------+ +-------+ | | Array | <-+ +-> NULL +-------+ | 1,2,3 | +-------+ After glob assignment --------------------- *main::a *main::b | | | +-------+ +-------+ | +--> | Glob | | Glob | <--+ +-------+ +--------+ +-------+ | GP ---------> | GP | <--------- GP | +-------+ +--------+ +-------+ | ARRAY --+ +--------+ | +-------+ +-> | Array | +-------+ | 1,2,3 | +-------+ After "undef *a" (Gets a fresh GP, undoing the glob assignment) ----------------- *main::a *main::b | | | +-------+ +-------+ | +--> | Glob | | Glob | <--+ +-------+ +-------+ +-------+ +-------+ | GP ----> | GP | | GP | <---- GP | +-------+ +-------+ +-------+ +-------+ +-- ARRAY | | ARRAY --+ | +-------+ +-------+ | +-------+ NULL <-+ +-> | Array | +-------+ | 1,2,3 | +-------+ If you had done "undef @a" (Clears @a) -------------------------- *main::a *main::b | | | +-------+ +-------+ | +--> | Glob | | Glob | <--+ +-------+ +--------+ +-------+ | GP ---------> | GP | <--------- GP | +-------+ +--------+ +-------+ | ARRAY --+ +--------+ | +-------+ +-> | Array | +-------+ | () | +-------+