Is
Monitor::TestArray keeping a hard reference of its own around? (I'm not familiar with
Tie::StdArray it is inheriting from and couldn't find mention of it anywhere, so I assume it's local to your project. Perhaps you should show us the implementation?)
Update: Ah, confusing. Tie::StdArray is defined by Tie::Array. Well, it's worth peeking at the implementation there.