2009-09-12 374 views

回答

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

我不会称之为'$ reset';我认为'搜索'或类似的东西会使它更清晰。 – cjm 2009-09-12 19:49:56

+0

@cjm - 我同意,但是'$ reset'是我头上的第一件事。 – 2009-09-12 19:55:26

5

你没读过句子的其余部分吗?这似乎很清楚:

这种用法模糊地废弃了,这意味着也许会 可能将在Perl, 的一些遥远的未来版本中删除围绕今年2168

也许某处对我来说,Perl说维护者不喜欢特殊情况的行为,宁愿人们不使用它,但不打算改变它。

使用安全。它将不得不经过一个真正的弃用周期(可能持续一段时间),然后才会被删除。这就是说,我不会使用它。这个特性足够深奥,很容易让任何人最终维护你的代码(这可能是你的未来)混淆。

+0

“它可能被删除”是不明确的。 “它”是指操作员本身,还是“这种用法”。句子的构建意味着'它'指的是'这种用法',表明运营商将保持不同的语义。 – 2009-09-12 17:03:14

+0

'?PATTERN?'是'm //'运算符的特例。操作员本身不会离开。使用'?'作为分隔符时的行为会改变;想必它不再是特别的。 – 2009-09-12 19:02:42