2016-08-13 3 views
2

Perl 용 UDEMY에 대한 교육용 비디오를보고 있는데 비디오가 선명하지 않으며 오류가있는 것 같습니다. 두 번째 하이 인 경우가Perl concierate

HiHi :

#!usr/bin/perl 

print $str = "Hi"; 
print $str .= " there\n"; 

내가 스크립트를 실행할 때 그 출력은 다음과 같습니다

훈련은 다음 예제 2 개 문자열을 연결하는 방법을 보여주고있다 에서 오는? 내가 놓친 게 있니?

+0

인쇄 할당 초보자의 대상이되지 않습니다. 물론 IMO. 나는이 기초에 당신이 더 나은 튜토리얼을 찾는 것이 좋습니다. – roaima

+2

또 다른 잘못된 것이 있습니다. '거기'에 't'가 대문자로 바뀌 었습니다. – Anthon

답변

8

첫 번째 명령문은 $ str에 "Hi"값을 할당 한 다음 인쇄합니다. 두 번째 명령문은 "str \ n"값을 $ str에 추가하여 $ str을 "Hi there \ n"와 동일하게 만든 다음 인쇄합니다. 따라서 얻는 결과물은 통역사에게해야 할 일에 대해 정확합니다.

7

교육에 실제로이 스크립트가 표시되면 문제를 해결하십시오. 일반적으로 작성하는 코드가 아닙니다.

$str = "Hi"은 변수 $str"Hi"으로 설정합니다. 대부분의 경우 할당 값은 사용되지 않고 할당 값은 변수의 값을 변경하는 부작용에 대해서만 수행됩니다. 그러나 Perl에서 할당에는 변수가 할당 된 값인 값이 있습니다. print $str = "Hi" 명령은 할당 된 값을 인쇄합니다. 즉, 문자열 "Hi"을 인쇄합니다.

제 설명에 $str$str"Hi there\n"로 설정 " there\n"와 연결 $str의 이전 값으로 구성 값을 할당한다. 다시 한 번 할당 된 값이 인쇄됩니다. 즉, 문자열 "Hi there\n"을 인쇄합니다.

는 일반적으로 하나가 할당 값을 사용하지 않을 :

#!/usr/bin/env perl 
my $str = "Hi"; 
$str .= " there\n"; 
print $str; 
+0

다음과 같이 수정했습니다 : #! usr/bin/perl $ str = "Hi"; print $ str. = "거기 \ n"; –

+0

@frankguthrie 여전히 Perl 코딩 스타일이 좋지 않습니다. 이 대답에서 당신이 제공 한 것을 다시 살펴보십시오. 따라하길 원하는 "자습서"를 포기하십시오. – roaima

+0

팁 주셔서 감사합니다.하지만 Gilles가 제공 한 코드를 사용하면 더 나은 코드가 제공되는 이유는 무엇입니까? 내 코드에 줄이 더 적은 것 같습니다. 그렇다면 왜 Gilles는 더 나은 옵션을 제공 했습니까? – frankguthrie