많은 펄 서적을 찾고 있었지만 대답을 찾을 수 없습니다. 나는이 코드를 가지고, 내가이하는 가정 무엇을하지 않으면 존재 IFF에, $ 티켓에 PARAM의 티켓을 할당 0Perl에서 '//'는 무엇을 의미합니까?
my $ticket = $params->{ticket} // 0;
많은 펄 서적을 찾고 있었지만 대답을 찾을 수 없습니다. 나는이 코드를 가지고, 내가이하는 가정 무엇을하지 않으면 존재 IFF에, $ 티켓에 PARAM의 티켓을 할당 0Perl에서 '//'는 무엇을 의미합니까?
my $ticket = $params->{ticket} // 0;
//
이 defined-or을 의미 지정합니다. $ticket
에는 정의 된 경우 $params->{ticket}
이 지정되고 그렇지 않으면 0이 지정됩니다.
C에서 직접적으로 동일한 것은 아니지만 Perl의
//
연산자는 C 스타일 또는 C 스타일과 관련이 있습니다. 사실||
과 정확히 동일 합니다만, 진실 대신 왼쪽면의 정의를 테스트합니다. 따라서EXPR1 // EXPR2
은 정의 된 경우EXPR1
의 값을 반환하고, 그렇지 않으면EXPR2
의 값이 반환됩니다.
added in 5.10입니다.
위의 코드에서 $params->{ticket}
은 여전히 가비지가있을 수 있으므로 값을 사용하기 전에 값이 예상 된 패턴을 준수하는지 확인하십시오.
펄 documentation는 말한다 :
는 "EXPR1 // expr2이 그것이 정의되어있는 경우는 true, 그렇지 않은 경우, expr2이 값이 반환됩니다 EXPR1의 값을 반환합니다."
이것은 논리 또는 테스트 정의와 유사합니다.
명중. google'man perlop'을 실행하고 해당 페이지에서'//'를 검색하십시오. – Jokester
잘못된 답변에 대한 사과. 제가 실수를. –
"defined-or"연산자는 2007 년 12 월에 릴리스 된 버전 5.10의 Perl에 추가되었습니다. 따라서 5 년이 넘은 모든 책은 분명한 이유로 언급하지 않을 것입니다. –