sub matrixGet { my ($o, $x, $y, $z) = @_; return $o->{m}[$x][$y][$z]; } sub matrixSet { my ($o, $x, $y, $z, $val) = @_; $o->{m}[$x][$y][$z] = $val; } ... $o->matrixGet(@{$h{$key}}); $o->matrixSet(@{$h{$key}},5);