package Tie::ArrayXYZ; use Tie::Functions qw( @ changeXYZ ); # ... sub CHANGEXYZ { my ($obj, $new_xyz) = @_; $obj->{XYZ} = $new_xyz; } 1;