在?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
- 1. 是什麼意思:是什麼意思?
- 2. %{}是什麼意思?
- 3. '#'是什麼意思?
- 4. 「?」是什麼意思?
- 5. #{...}是什麼意思?
- 6. || =是什麼意思?
- 7. @是什麼意思
- 8. $$ $$是什麼意思?
- 9. `/ * @`是什麼意思?
- 10. 「=」是什麼意思
- 11. + =是什麼意思?
- 12. {..} [..]是什麼意思?
- 13. 什麼是:!:意思?
- 14. @ []是什麼意思?
- 15. 什麼是「||」意思?
- 16. /([^.]*)\.(.*)/是什麼意思?
- 17. &**是什麼意思?
- 18. @(...)是什麼意思?
- 19. &@是什麼意思?
- 20. 「\\。\」,「\ ?? \」,「\\?\」,「\\」是什麼意思?
- 21. &=是什麼意思?
- 22. {%=%}是什麼意思?
- 23. 是什麼意思?
- 24. %%是什麼意思?
- 25. {}是什麼意思?
- 26. 「*&」是什麼意思?
- 27. 「_」是什麼意思?
- 28. Groovy,什麼意思 - >意思是
- 29. 什麼意思前綴::意思是
- 30. 是什麼意思,在Python中是什麼意思?
我不會稱之爲'$ reset';我認爲'搜索'或類似的東西會使它更清晰。 – cjm 2009-09-12 19:49:56
@cjm - 我同意,但是'$ reset'是我頭上的第一件事。 – 2009-09-12 19:55:26