in reply to Re: Perl task function
in thread Perl task function
my %dispatch = ( SCALAR => sub{ return 1; }, ARRAY => sub { my $ref = shift; my $n = scalar(@$ref); for(my $i = 0; $i < $n; ++$i) { my $result = clean($ref->[ $i ]); if($result == 0) { splice(@$ref, $i, 1); $i--; $n--; } } unless(@$ref) { return 0; } }, "HASH" => sub { my $ref = shift; while(my ($key, $value) = each( %$ref)) { my $result = clean($value); if ($result == 0) { delete($ref->{$key}); } } my $n = scalar(keys %$ref); if ($n == 0) { return 0; } return 1; }, REF => sub{ my $ref = shift; die "REF: $ref not allowed"; }, CODE => sub{ my $ref = shift; die "CODE: $ref not allowed"; }, '' => sub{ return 1; }, );
ikegami, I don't understand your solution. There is no need to undef the scalars, and it didn't delete the empty arrays. Thanks for help, though.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Perl task function
by ikegami (Patriarch) on Sep 09, 2010 at 15:16 UTC | |
|
Re^3: Perl task function
by BrowserUk (Patriarch) on Sep 09, 2010 at 15:25 UTC |