##
# Class->new();
# Class->new({ k=>v, ... });
sub new {
my $class = shift;
my %self = ref $_[0] ? %{$_[0]} : ();
...
##
##
# Class->new();
# Class->new({ k=>v, ... });
# Class->new( k=>v, ... );
sub new {
my $class = shift;
my %self = ref $_[0] ? %{$_[0]} : @_;
...
}
##
##
# Class->new();
# Class->new( k=>v, ... );
sub new {
my ($class, %self) = @_;
...
}