sub my_func{ my ( $self, $ptr_array, $value ) = @_; return look_right() if ( $value == 0 ); return look_left() if ( $value == @{ $ptr_array } ); return ( look_right() && look_left() ); sub look_right() {... [uses $value and $ptr_array] } sub look_left() {... [uses $value and $ptr_array] } }