http://qs321.pair.com?node_id=160818


in reply to Re: Re: undef'ing @arrays caveat
in thread undef'ing @arrays caveat

True, and in fact if you undef @array the effect is identical.

Try using Devel::Peek. undef @array sets MAX to -1, @array = () does not. Or use Benchmark and find out that undef @array is about twice as fast. The effect is the same, but internally, there's something entirely different going on.

- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.

Replies are listed 'Best First'.
Re(4): undef'ing @arrays caveat
by dmmiller2k (Chaplain) on Apr 20, 2002 at 23:12 UTC

    Granted. But besides the speed issue, the result is effectively the same.

    In the case of undef @array, @array does not actually get undefined (i.e., it still exists), just emptied, however more efficiently than with @array = ().

      @array does not actually get undefined

      undef can only un-define scalars, because only scalars can be not-defined. Hashes and arrays are emptied, subs and globs are destroyed. I think the manual is not clear enough about this.

      - Yes, I reinvent wheels.
      - Spam: Visit eurotraQ.