Thursday, September 27, 2012

Delete elements from an array and purge the deleted values.


#!/usr/bin/perl

# create an array
my @arr = (1..10);

#delete even indexed values
foreach (0..$#arr) {
  delete $arr[$_] if ($_ % 2);
}

# print the array length and array
print 'array length = ', scalar(@arr), " and array = @arr";
print "\n\n";

use Data::Dumper;
print Dumper(\@arr);

print "\n\n";
#purge the deleted elements.
@arr = grep defined, @arr;
print 'array length = ', scalar(@arr), " and array = @arr";

print "\n\n";
print Dumper(\@arr);


-------------------------------------------------------------------------------------
output ::

array length = 9 and array = 1  3  5  7  9

$VAR1 = [
          1,
          undef,
          3,
          undef,
          5,
          undef,
          7,
          undef,
          9
        ];


array length = 5 and array = 1 3 5 7 9

$VAR1 = [
          1,
          3,
          5,
          7,
          9
        ];