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


in reply to Re^2: Sorting an array of hashes
in thread Sorting an array of hashes

Actually, in that case you need to check if the value is defined. The element still exists, and checking for existens doesn't buy you anything.

Replies are listed 'Best First'.
Re^4: Sorting an array of hashes
by BKB (Novice) on Mar 27, 2008 at 10:46 UTC
    Running the previous version of code:
    perl arraydelete.pl Use of uninitialized value within @x in print at arraydelete.pl line 6 +. 1245
    Modified as follows using "exists":
    #! perl use warnings; use strict; my @x = (1,2,3,4,5); delete $x[2]; for (0..4) { print $x[$_] if exists ($x[$_]) }
    Run it to produce:
    perl arraydelete.pl 1245
      Update: I didn't read your post carefully enough

      You get the result you want, but the semantic is not what you indicate by using exists so I'd rather use defined in that case.

      #! perl use warnings; use strict; my @x = (1,2,3,4,5); delete $x[2]; for (0..4) { print $x[$_] }
      Run it to produce:
      Use of uninitialized value in print at checkifexists.pl line 6. 1245
      So, the element exists, but it's value is undefined.