2012-04-11 4 views
3

파일을 배열로로드합니다 (배열 요소의 모든 행). 배열 요소를 처리하고 새 파일에 저장합니다. 나는 새 파일을 인쇄하려면 :Perl 인쇄는 모든 요소에 대해 선행 공백을 표시합니다.

print ("Array: @myArray"); 

-하지만 그것은 모든 라인의 선두 공백으로 보여줍니다. 선행 공백없이 배열을 인쇄하는 간단한 방법이 있습니까?

+0

되어 더 큰 질문 : 당신이 당신의 전체를로드해야합니까 배열에 파일? 일반적으로 각 행을 개별적으로 처리하고 인쇄하는 것이 더 효율적입니다. 행이 서로 의존하는 경우 (정렬 또는 계산과 같은 경우) 행을 인쇄하기 전에 저장해야합니다. – TLP

답변

4

Matt Fenwick가 올바른지. 배열이 큰 따옴표 안에 있으면 Perl은 요소들 사이에 $" (기본값은 공백으로, the perlvar manpage 참조)의 값을 배치합니다. 당신은 따옴표 외부로 넣을 수 있습니다 : 당신은 예를 들어, 쉼표로 구분 요소를 원하는 경우

print ('Array: ', @myArray); 

이 변경 output field separator :

use English '-no_match_vars'; 
$OUTPUT_FIELD_SEPARATOR = ',';  # or "\n" etc. 
print ('Array: ', @myArray); 
+2

마지막 문장으로 무엇을 표현하고 싶은지 잘 모르겠습니다. 명확히하십시오. – daxim

+0

나는 암호 변수 이름을 피하기 위해'영어 사용 '을 추천했다. – Konerak

+0

개선을 위해 편집되었습니다. – daxim

6

예 - join를 사용

my $delimiter = ''; # empty string 

my $string = join($delimiter, @myArray); 

print "Array: $string"; 
+1

조인 문이 중복되었습니다. 'print "배열 :", @myArray;는 잠재적으로 메모리를 많이 사용하는 변수의 또 다른 사본을 만들지 않고 똑같은 일을합니다. – TLP

관련 문제