«последний» оператор для функций? - PullRequest
5 голосов
/ 04 апреля 2011

Есть ли в Perl оператор для выхода из функции или last для функций?

sub f {

    # some code here

    if ($v == 10) {
    # goto end of function/exit function/last
    }

    # some code here
}

A goto может помочь, но как-то неправильно?

Ответы [ 2 ]

16 голосов
/ 04 апреля 2011

Используйте return; для выхода из подпрограммы.

0 голосов
/ 05 апреля 2011

Ну, ... можно использовать goto, чтобы перейти к концу подпрограммы:

sub f {

  # some code here

  if ($v == 10) {
    goto END;
  }

  # some code here
  END:
}

Или использовать last, чтобы перейти к концу подпрограммы (если вы добавляете блок):

sub f {
  END: {

    # some code here

    if ($v == 10) {
      last END;
    }

    # some code here

  } # END
}

Что вы действительно хотите использовать: return

sub f {

  # some code here

  if ($v == 10) {
    return;
  }

  # some code here

}

Если вы хотите узнать, какие функции доступны, я бы обратился к справочнику perlfunc .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...