use strict;
use warnings;
+use Scalar::Util;
=head1 NAME
sub new {
my $class = shift();
my($name, @subnodes) = @_;
- return bless {
+ my $this = bless {
name => $name,
subnodes => \@subnodes,
address => undef, # filled in by resolve()
previous => undef, # filled in by resolve()
next => undef, # filled in by resolve()
}, $class;
+
+ return $this;
}
=head2 name()
use strict;
use warnings;
+use Scalar::Util;
use XML::LibXML;
use XML::LibXML::XPathContext;
use ZOOM::IRSpy::Utils qw(xml_encode isodate irspy_xpath_context);
### Parser should be in the IRSpy object
my $parser = new XML::LibXML();
- return bless {
+ my $this = bless {
irspy => $irspy,
target => $target,
parser => $parser,
zeerex => $parser->parse_string($zeerex)->documentElement(),
}, $class;
+
+ #Scalar::Util::weaken($this->{irspy});
+ #Scalar::Util::weaken($this->{parser});
+
+ return $this;
}
use 5.008;
use strict;
use warnings;
+
+use Scalar::Util;
use ZOOM::IRSpy::Utils qw(irspy_xpath_context);
=head1 NAME
use strict;
use warnings;
+use Scalar::Util;
+
=head1 NAME
ZOOM::IRSpy::Task - base class for tasks in IRSpy
my $class = shift();
my($conn, $udata, $options, %cb) = @_;
- return bless {
+ my $this = bless {
irspy => $conn->{irspy},
conn => $conn,
udata => $udata,
cb => \%cb,
timeRegistered => time(),
}, $class;
+
+ #Scalar::Util::weaken($this->{irspy});
+ #Scalar::Util::weaken($this->{udata});
+
+ return $this;
}
use strict;
use warnings;
+use Scalar::Util;
+
=head1 NAME
ZOOM::IRSpy::Test - base class for tests in IRSpy
use strict;
use warnings;
+use Scalar::Util;
+
use Exporter 'import';
our @EXPORT_OK = qw(utf8param
isodate