in reply to Re: PDF::API2, $pdf->end
in thread PDF::API2, $pdf->end
sub release { my ($self, $force) = @_; my (@tofree); return($self) unless(ref $self); # delete stuff that we know we can, here if ($force) { foreach my $key (keys %{$self}) { push(@tofree,$self->{$key}); $self->{$key}=undef; delete($self->{$key}); } } else { @tofree = map { delete $self->{$_} } keys %{$self}; } while (my $item = shift @tofree) { my $ref = ref($item); if (UNIVERSAL::can($item, 'release')) # LINE 150 { $item->release($force); } elsif ($ref eq 'ARRAY') { push( @tofree, @{$item} ); } elsif (UNIVERSAL::isa($ref, 'HASH')) { release($item, $force); } } # check that everything has gone - it better had! foreach my $key (keys %{$self}) { # warn ref($self) . " still has '$key' key left after release. +\n"; $self->{$key}=undef; delete($self->{$key}); } }
|
|---|