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