Что означает «неопределенно осуждаемый» в отношении? PATTERN? - PullRequest
1 голос
/ 12 сентября 2009

В обсуждении ?PATTERN?, perlop говорится «Это использование не рекомендуется». Означает ли это, что сам оператор сопоставления ?? будет удален из perl, или это означает, что его семантика изменится? Является ли использование ?? плохой идеей или это предупреждение в perlop можно игнорировать?

Ответы [ 2 ]

5 голосов
/ 12 сентября 2009

Вы не читали остальную часть предложения? Кажется достаточно ясным:

Это использование не рекомендуется, что означает возможно будет удален в какой-нибудь далёкой будущей версии Perl , возможно где-то около 2168 года.

Для меня это говорит о том, что разработчики Perl не любят поведение в особом случае и предпочитают, чтобы люди его не использовали, но не планируют его менять.

Это безопасно для использования. Это должно было бы пройти реальный цикл амортизации (который может длиться довольно долго), прежде чем он будет удален. Тем не менее, я не буду использовать это. Эта функция настолько эзотерична, что может легко запутать, кто бы ни заканчивал тем, что поддерживал ваш код (который может стать вашим будущим).

5 голосов
/ 12 сентября 2009

Я предполагаю, что это означает более или менее то, что написано:

Это использование не рекомендуется, что означает, что оно может быть удалено в какой-то далекой будущей версии Perl, возможно, где-то в 2168 году.

Это означает, что они удалят его, когда выпустят Perl 6.

Я шучу, я шучу. Я бы предположил, что «смутное осуждение» означало бы, что это не ужасная конструкция, но вы, возможно, захотите переосмыслить свой дизайн. Лично я даже не знал, что это было (или что функция reset() вообще существовала), пока я не посмотрел ее прямо сейчас, и, увидев ее, я не знаю, буду ли я когда-либо использовать ее для чего-либо. Пример, который они приводят в perlop, немного загадочный:

while (<>) {
  if (?^$?) {
    ...
  }
} continue {
  reset if eof;
}

Я бы написал эквивалент и более очевидно:

my $reset = 1;
while (<>) {
  if ($reset and /^$/) {
    ...
    $reset = 0;
  }
} continue {
  $reset = 1 if eof;
}

Это более многословно, но немного более очевидно и легче для мозга (и сопровождающего).

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