LINUX.ORG.RU

[perl] как сделать лучше?

 


0

0

Очень часто приходится использовать такие конструкции:

$var =~ /regexp1(regexp2)/; 
$var = $1;

$string =~ /regexp1(regeexp2)/;
$var = $1;

Работает именно так как и предполагается, но что-то мне подсказывает что это неправильно. Нельзя ли это сделать попроще и поэстетичнее?

★★★★★
Ответ на: комментарий от dilmah

Чёрт. Мне казалось, что я раньше пробовал такой синтаксис и у меня ничего не получилось. Но что делать если нужно присвоить это значение не оригинальной, а новой строке?

KblCb ★★★★★
() автор топика
Ответ на: комментарий от KblCb

Если тебя смущает что $1 от разных конструкций могут запутаться, то
оформляй блоки:

{
  $var =~ m/regexp1(regexp2)/;
  $var = $1;
}

цитата:

       $<digits>
               Contains the subpattern from the corresponding set of capturing
               parentheses from the last pattern match, not counting patterns
               matched in nested blocks that have been exited already.

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.