overload+tie was too complicated to be worth it. just return a read-only write-once perl hashref divorced from the C struct. The only real drawback here is that you cannot do $misc->{$key} = $value but instead must do $misc->set( $key => $value ) to affect the underlying struct.