How does one generate and track a bunch of objects?A lot depends on whether you have control of the construction of the objects, or whether you are merely using someone else's class. Do you want to keep a handle on them from the time they are constructed, to the time they are destructed? (Beware, keeping an extra reference may stop the objects from being DESTROYed, without explicit removal from @pack and/or Scalar::Util::weaken magic).
If it is your class, you can always make the 'new' method save a pointer in an array somewhere; for someone else's code, you could always subclass and override new, like this:
If you are wanting to do this generically, you might want to override CORE::GLOBAL::bless, but this is not for the feint hearted. Look at my module Devel::Leak::Object for an example of this.package Hound; use strict; use warnings; use base qw(Dog); our @pack; sub new { my $pkg = shift; my $obj = $pkg->SUPER::new(@_); push @pack,$obj; $obj; }
--
I'm Not Just Another Perl Hacker
In reply to Re: Tracking objects.
by rinceWind
in thread Tracking objects.
by yoda54
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |