2013-10-14 3 views
1

해시를 읽고 해시 내의 모든 키 값 쌍을 출력하는 Perl에 서브 루틴이 있습니다. 그러나 foreach 루프를 거쳐 키가있을 때마다 인쇄하는 대신 하나의 스칼라에 결과를 추가 한 다음 끝에 결합 된 결과가있는 스칼라를 반환해야합니다.Perl : 텍스트를 스칼라에 추가하는 방법

자바에서는 변수에 텍스트를 쉽게 추가 할 수 있지만 Perl에서는이를 수행하는 방법을 모르겠습니다.

의견이 있으십니까? 내가 아래에있는 내 인쇄 코드를 추가 할 것입니다,하지만 난 기본적으로이 걸릴 스칼라에 추가하고 마지막에 결합 된 스칼라를 반환 할

sub printSongs 
{ 
    print "Song Database\n\n"; 
    foreach $key (keys %songList) 
    { 
     print "Song Title: $key ---- Duration: $songList{$key}\n"; 
    } 
} 

PS (의이 $output을 가정 해 봅시다) :이 검색 시도 대답은 상대적으로 간단해야하지만 아무것도 찾을 수 없었습니다. append가 최상의 단어인지 확실하지 않습니다.

+1

이 PerlMonks 페이지를 참조하십시오 : [문자열을 어떻게 연결합니까?] (http://www.perlmonks.org/?node_id=32418) – ThisSuitIsBlackNot

+0

아! 연결은 적절한 용어입니다. 감사! –

+0

http://search.perlhacks.com/에서 "스칼라에 텍스트 추가"를 검색하면 유용한 답변이 나온다는 사실을 알게되어 기쁩니다 :-) –

답변

6

Perl의 연결 연산자는 .입니다. 할당을 .=으로 결합 할 수도 있습니다.

0
sub printSongs 
{ 
    print "Song Database\n\n"; 

    foreach $key (keys %songList) 
     { 

     $something_combined = $something_combined . 
      "Song Title: $key ---- Duration: $songList{$key}\n"; 
     } 

    print $something_combined; 

} 

은 쉽게 마침표 문자로 변수에 무엇을 추가 할 수 있습니다.

예 : $ something = "Something" $ somevar. "다른 것" . "기타";

Java에서는 일반적으로 +를 사용하여 문자열을 결합합니다. Perl에서는 사용할 수 있습니다.