in reply to hash array removal ?

splice @{$VAR2->{'TRAPS'}->{'TRAP_LIST'}},$index; example splice @{$VAR2->{'TRAPS'}->{'TRAP_LIST'}},1 ;

Replies are listed 'Best First'.
Re: Re: hash array removal ?
by Anonymous Monk on Feb 25, 2003 at 19:00 UTC
    Ok...to make things more complicated I'm doing this with Tk, and I have a sub routine that looks like this:
    sub del { if (defined $list->curselection) { my $entry = $list->curselection; $list->delete($entry); $varbind = ''; $data = ''; print "INDEX: $index\n"; print "ENTRY: $entry\n"; my $position = ($single - 1); splice @{$hash->{'TRAPS'}->{'TRAP_LIST'}}, $position, $entry; } }
    This seems to work in the begging but fails shortly after.
    Any idea why?

    Is it that I have to grep for empty array's in the TRAP_LIST after the splice?

      i do not understand whts not working. splice onle remove (cut) the cells u ask. he doesnt care if the cell is realy there or not. lets say you have this program:
      #!/usr/bin/perl use Data::Dumper; $VAR2 = { 'CSTRING' => 'public', 'SPECIFIC' => '1', 'GENERIC' => '6', 'SSERVER' => 'testmachine', 'DATE' => 'Tue Feb 25 10:13:43 2003', 'OID' => '1.2.3.4.5', 'DEVICE' => '123.124.125.126', 'TRAPS' => { 'TRAP_LIST' => [ { 'TYPE' => 4, 'DATA' => 'foo', 'VARBIND' => '1.2.3.4.5' }, { 'TYPE' => 44, 'DATA' => 'bar', 'VARBIND' => '1.2.3.4.5' }, { 'TYPE' => 444, 'DATA' => 'bar', 'VARBIND' => '1.2.3.4.5' }, { 'TYPE' => 4444, 'DATA' => 'bar', 'VARBIND' => '1.2.3.4.5' } ] }, 'PORT' => '161' }; print Dumper $VAR2 ; del($VAR2); print Dumper $VAR2 ; sub del{ splice @{$VAR2->{'TRAPS'}->{'TRAP_LIST'}}, 2, 3; }
      when u call sub del he cut the array from index:2 3 cells. you can do splice @{$VAR2->{'TRAPS'}->{'TRAP_LIST'}}, 22, 43; and it will do nothing to the array, because cell 22 to 67 are not exists. you do not need to ask if the cell is defined or not if its defined he will cut him.