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 } );
####
package Junk2;
sub new {
my( $class, $attributes ) = @_;
my $self = bless {}, $class;
%{ $self } = %{ $attributes };
return $self;
}
package main;
my $obj2 = Junk2->new( { a=>1 , b=>2, c=>3 } );
##
##
package Junk3;
sub new {
my( $class, $attributes ) = @_;
my $self = bless { %{ $attributes } }, $class;
return $self;
}
package main;
my $obj3 = Junk3->new( { a=>1 , b=>2, c=>3 } );
##
##
package Junk4;
sub new {
my( $class, $attributes ) = @_;
return bless $attributes, $class;
}
my $obj4 = Junk4->new( { a=>1 , b=>2, c=>3 } );
##
##
package Junk5;
sub new {
my( $class, %attributes ) = @_;
return bless \%attributes, $class;
}
my $obj5 = Junk5->new( a=>1 , b=>2, c=>3 );
##
##
# Ooooh, hash-slice. :)
# woo, hash slice
# A slice of Hash
# Aren't hash slices lovely?
# Hash ref slice