Do you mean the :: in return $obj->SUPER::new(@args);? SUPER calls the base class method of the object. For example:
use strict;
use warnings;
package Base;
sub method {
my ($self) = @_;
my $class = ref $self;
print "In Base::method(). I'm a $class instance.\n";
}
package Derived;
push @Derived::ISA, 'Base';
sub new {
my ($class) = @_;
return bless {}, $class;
}
sub method {
my ($self) = @_;
print "In Derived::method()\n";
$self->SUPER::method();
}
package main;
my $obj = Derived->new();
$obj->method();
Prints:
In Derived::method()
In Base::method(). I'm a Derived instance
True laziness is hard work