Perl コーディング初心者質問コーナー Part36
■ このスレッドは過去ログ倉庫に格納されています
0353329
04/08/05 15:49ID:A93W0UINmy $value = $obj->access(path1=>hoge,path2=>hogeがハッシュ、配列のリファレンスならその続きをここに,value=>代入したい値);
突っ込んでくれるとどこを改良すればいいかのめぼしがつくからうれしい。
sub access{
my $self = shift;
my %atr = (path1 => undef,path2 => undef,value=>undef,@_);
if ( !($atr{path2}) ) {
if ( ref $self->{$atr{path1}} eq "SCALAR" ){
if ( $atr{value} ){${$self->{$atr{path1}}} = $atr{value};}
return ${$self->{$atr{path1}}};
} elsif ( ref $self->{$atr{path1}} eq "ARRAY" ){
if ( $atr{value} ){@{$self->{$atr{path1}}} = $atr{value};}
return @{$self->{$atr{path1}}};
} elsif ( ref $self->{$atr{path1}} eq "HASH" ){
if ( $atr{value} ){%{$self->{$atr{path1}}} = $atr{value};}
return %{$self->{$atr{path1}}};
} else {
if ( $atr{value} ){$self->{$atr{path1}} = $atr{value};}
return $self->{$atr{path1}};
}
} elsif ( !($atr{path3}) ) {
if ( $atr{value} ){$self->{$atr{path1}}{$atr{path2}} = $atr{value};}
return $self->{total}{prtotal};
}}
■ このスレッドは過去ログ倉庫に格納されています