#!/usr/bin/perl use strict; use warnings; my $a = B->new(); BEGIN { package A; sub new { my ( $class, %args ) = @_; my $self = bless {}, ref($class) || $class; return $self; } package B; @B::ISA = qw(A); sub _init { my ( $self, %args ) = @_; $self->{_title} = $args{title} || undef; } }