sub my_serialize { my $obj = shift; if (check_some_condition($obj)) { return freeze replace($obj) } return freeze $obj; # serialize $obj as is }; my $data = my_serialize($tree)