什么“模糊地弃用”意味着什么?PATTERN?

时间:2009-09-12 16:28:19

标签: perl

?PATTERN?的讨论中,perlop声明“这种用法被模糊地弃用”。这是否意味着??匹配运算符本身将从perl中删除,还是意味着它的语义会发生变化?使用??是个坏主意,还是可以忽略perlop中的警告?

2 个答案:

答案 0 :(得分:5)

我认为这或多或少意味着它的含义:

  

这种用法被模糊地弃用了,这意味着它可能会在一些遥远的未来版本的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;
}

它更冗长,但它在大脑(和维护者)上更明显,更容易。

答案 1 :(得分:5)

你没看过句子的其余部分吗?看起来很清楚:

  

这种用法被模糊地弃用,这意味着它可能   可能会在一些遥远的未来版本的Perl 中删除,   也许是2168年左右的某个地方。

对我而言,Perl的维护者不喜欢特殊情况,并且宁愿人们不使用它,但没有计划改变它。

使用安全。它必须经过一个真正的弃用周期(可能会持续一段时间)才能被删除。那就是说,我不会用它。这个功能足够深入,以至于很容易混淆任何人最终维护你的代码(可能是未来的代码)。