What happens to memory after is has been removed from perl (shift/undef/delete etc)?
It is 'put back' into the memory pool perl uses when allocating memory. So when you undef
something, the memory that it used becomes available again to be re-allocated.
Can it be reused by other apps?
No, only once the process has exitted will the memory be available to to other apps. This is an OS issue, not a perl issue. See. the recent Memory leak when using hash 'references'
for more info on the topic.