sub new { my ($self, $tn, $key, $value); my $class = shift; if ($_[2] =~ /^\d+$/) { # this suppose no %hash key is all numeric $tn = Telephone::Number->new(shift, shift, shift); } else { $tn = Telephone::Number->new(shift); } my ($smstext, %hash) = @_; $self = bless { 'tn' => $tn, 'smstext' => $smstext, 'cookie_jar' => exists $hash{cookie_jar} ? delete $hash{cookie_jar} : "lwpcookies.txt", }, $class; @{$self}{keys %{$tn}} = @{$tn}{keys %{$tn}}; @{$self}{keys %hash} = @hash{keys %hash}; #dragonchild suggestion $self; }