2013-04-22 48 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

相关问题