2012-05-29 34 views

回答

5

也許map功能是你想要的東西更適合。您正在尋找類似以下內容(未經測試)代碼的東西:

@substrings = map { /^test-results(.*)/ ? $1 :() } @{ $arrayref }; 
+0

感謝您的有用的地圖工具.... –

+2

永遠不要使用'$ 1'和朋友以外的條件。捕獲來自上次成功的匹配。更好的是'@substrings = map {/ ^測試結果(。*)/? $ 1:()} @ {$ arrayref};'。 –

+0

@Greg:謝謝!我做了一個假設,當然一切都會匹配,可能相當不正確。更換。 :) – sarnold

8

在列表上下文中,正則表達式匹配返回其捕獲所匹配的列表,所以你需要的是:

@substrings = map /^test-results(.*)/, @$array; 
+0

+1'map' FTW! @ikegami! – Jess