David Inglis wrote:
>
> Is there a command to drop an element from an array, or what is the best
> way to do this.

Hi David.

A call to 'splice' is the usual answer, but sometimes you
may want the remaining elements to keep their indices.

A call to 'delete' will shrink an array if you delete from
its end. A delete from the middle of its extent will
leave the size the same but the 'exists' test will then
return false on that element.

Check out this code.

HTH,

Rob


  use strict;
  use warnings;

  my @a = 'a' .. 'j';
  printf "Original length: %d\n\n", scalar @a;

  undef  $a[2]; # undefine the third element
  delete $a[4]; # delete the fifth element
  delete $a[9]; # delete the last element
  printf "New length: %d\n\n", scalar @a;

  foreach my $i (0 .. 9) {

    my $value;

    if (not exists $a[$i]) {
      $value = 'non-existent'
    }
    elsif (not defined $a[$i]) {
      $value = 'undefined';
    }
    else {
      $value = $a[$i];
    }

    printf "\$a[%d] = %s\n", $i, $value;
  }

**OUTPUT

  Original length: 10

  New length: 9

  $a[0] = a
  $a[1] = b
  $a[2] = undefined
  $a[3] = d
  $a[4] = non-existent
  $a[5] = f
  $a[6] = g
  $a[7] = h
  $a[8] = i
  $a[9] = non-existent



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to