2010-04-27 4 views
9

나는 join 함수를 사용하고자하는 문자열 배열을 가지고 있습니다. 그러나 각 문자열 앞에 동일한 문자열을 붙이고 싶습니다. 배열을 먼저 반복하고 조인을 사용하기 전에 각 값을 변경하는 것과 반대로 한 줄에서이 작업을 수행 할 수 있습니까?Perl에서 join을 사용할 때 접두사 추가

사실 그것은 조금 더 까다 롭습니다. 접두어는 조인 구분 기호의 일부가 아닙니다. 의미는 (1,2,3,4,5) 배열에 "num-"과 같은 접두사를 사용했다면 num-1, num-2, num-3, num-4와 같은 결과를 얻고 싶을 것입니다. , NUM-5

답변

20

이 코드 :

my @tmp = qw(1 2 3 4 5); 
my $prefix = 'num-'; 
print join "\n", map { $prefix . $_ } @tmp; 

제공 :

num-1 
num-2 
num-3 
num-4 
num-5 
+1

답변을 게시하려고했으나 귀하의 것이 최고 였으므로 대신 서식을 수정했습니다. :) – Ether

+1

덜 혼란스러운지도 형태의지도를 사용하도록 변경했습니다. 괜찮습니다. :) – rjh

+0

한 줄짜리 죄송합니다. 편집 해 주셔서 감사합니다. – racerror

3

그냥의 접두사 부분을 결합 : 당신이 원하는 경우도 추가하는 설정을 할 맵을 사용할 수

my @array = qw(a b c d); 
my $sep = ","; 
my $prefix = "PREFIX-"; 
my $str = $prefix . join("$sep$prefix", @array); 

:

my $str = join($sep, map "$prefix$_", @array); 
+0

왜 하나의 문자열을 배열에 저장하고 있습니까? – cjm

+1

cjm : 코드에 버그가있는 이유는 무엇입니까? 어쨌든, 고정 :-) – runrig

관련 문제