in reply to forwarding arguments to a constructor to a new function

Your first instinct was correct in both cases. To get named arguments out of the argument array, use my %params = @_;. To pass the arguments to another method in your constructor, do

sub new { my $this = shift; $this->_init( @_ ); }

It doesn't really matter, but Perl convention is to use $self instead of $this. It's worth using if you ever plan to have other Perl people look at your code.