2009-09-12 364 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