2013-04-22 7 views
-2

배열이 있습니다 - @values - 이와 같은 요소가 있습니다.문자열에서 부분 문자열을 제거합니다.

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

답변

0

for/foreach 루프의 인덱스 변수는 배열 요소의 별칭입니다. 인덱스 변수를 변경하면 배열 요소도 변경됩니다.

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

그 해결책을 생각했지만 "도메인"은 모든 요소에 대해 동일하지 않으며 "도메인"의 길이조차도 다른 배열 요소에서 다릅니다. 배열 요소 자체를 변경해도 상관 없습니다. – Ambi

관련 문제