sub create_and_initialize { # 'new' is a bad name; it does more. my $class = shift; my $arg = pop; # Initialization argument for my class; my $obj = bless $class->SUPER::new(@_), $class; # Initialize the object using $arg. return $obj; }