“模糊不清”是什么意思?PATTERN是什么意思?
在?PATTERN?
,perlop
的讨论中指出“此用法含糊不清”。这是否意味着??
匹配运算符本身将从perl中删除,还是意味着它的语义会改变?是使用??
一个坏主意,还是可以忽略perlop中的警告?“模糊不清”是什么意思?PATTERN是什么意思?
我会假设这意味着或多或少它说:
这种用法模糊地废弃了,这意味着它只是有可能会在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;
}
这是更详细的,但它是对大脑有一点更明显,更容易(和维护者)。
你没读过句子的其余部分吗?这似乎很清楚:
这种用法模糊地废弃了,这意味着也许会 可能将在Perl, 的一些遥远的未来版本中删除围绕今年2168
也许某处对我来说,Perl说维护者不喜欢特殊情况的行为,宁愿人们不使用它,但不打算改变它。
使用安全。它将不得不经过一个真正的弃用周期(可能持续一段时间),然后才会被删除。这就是说,我不会使用它。这个特性足够深奥,很容易让任何人最终维护你的代码(这可能是你的未来)混淆。
“它可能被删除”是不明确的。 “它”是指操作员本身,还是“这种用法”。句子的构建意味着'它'指的是'这种用法',表明运营商将保持不同的语义。 – 2009-09-12 17:03:14
'?PATTERN?'是'm //'运算符的特例。操作员本身不会离开。使用'?'作为分隔符时的行为会改变;想必它不再是特别的。 – 2009-09-12 19:02:42
我不会称之为'$ reset';我认为'搜索'或类似的东西会使它更清晰。 – cjm 2009-09-12 19:49:56
@cjm - 我同意,但是'$ reset'是我头上的第一件事。 – 2009-09-12 19:55:26