package Junk1; sub new { my( $class, $attributes ) = @_; my $self = bless {}, $class; # add attributes to object my @fields = (keys %{ $attributes }); @{ $self }{ @fields } = @{ $attributes }{ @fields }; # hash slice return $self; } package main; my $obj1 = Junk1->new( { a=>1 , b=>2, c=>3 } );