Thanks chromatic, for the quick reply!
Yes, the DESTROY is this:
sub DESTROY {
my ($self, @args) = @_;
$self->print("End Logging");
undef $self->{'_fh'};
return 1;
}
And commenting out the $self->print line kills the error.
Now to understand why... Shouldn't $self->print be the same as calling it as $log->print? The filehandle is still defined until the next line...Hmmm. This is why perl objects confuse me! ;-)
Since DESTROY is being called implicitly, is the problem that it isn't getting all of the $log object, or perhaps there is a bug in the way the DESTROY object is handling the elements? Should I break out the elements as found in the 'new' method, like so:
sub new{
my ($class, @arg) = @_;
my %arg = @arg;
...
}
Where we're breaking the array args into a hash arg. Nope, guess not, as it doesn't fix the error. |