2013-04-22 40 views
-2

我有一個數組 - @values - 包含像這樣的元素。根據perl中存在的字符串刪除一個子字符串

abcd 
ijk.* 
alba 
^defg 
xyz.domain.example.com 

我做的陣列上像這樣的檢查:

foreach $val(@values) 
{ 
    if(!`grep $val /tmp/list` && (!grep /$val/,@anotherlist) 
    { 
     #Perform an action; 
    } 
} 

/tmp/list@anotherlist可能/可能不包含類似xyz或正則表達式的值,但不xyz.domain.example.com。這裏domain是可變長度的。

那麼你能否建議一種方法來刪除.domain.example.com如果我在字符串中找到它? 我還維護一個名爲@domain的數組中的域列表。

我更喜歡在我當前的if語句中使用該操作的解決方案。

+0

你問的是如何做一個基本的字符串操作? – TLP 2013-04-22 21:42:03

回答

0

for/foreach循環中的索引變量是數組元素的別名。如果您對索引變量進行了更改,那麼您也正在對數組元素進行更改。

#Perform an action; 
$val =~ s/\.domain\.example\.com//; 
+0

我想到了這個解決方案,但「域」對於每個元素都不相同,甚至「域」的長度在不同的數組元素中也是不同的。我不介意改變數組元素本身。 – Ambi 2013-04-23 05:12:35

相關問題