2010-01-22 5 views
0

Perl이 슬래시를 이스케이프 문자로 사용하지 않고 주소 문자열을 인쇄하려면 어떻게해야합니까? 더 많은 이스케이프 문자를 추가하여 문자열을 변경하고 싶지 않습니다.Perl이 를 이스케이프 문자로 해석하지 못하게하려면 어떻게해야합니까?

+3

당신은 문제를 일으키는 코드를 게시 할 수 있을까요? –

+2

죄송합니다. 운이 좋지 않을 것입니다. '\\'는 이스케이프 문자이며, 리터럴 문자를 원한다면 이스케이프 문자를 사용해야합니다. –

+0

@Chris : bzzt! :) – Ether

답변

0

당신이 탈출 할 내용에 따라 다르지만 견적과 같은 운영자가 도움이 될 수 있습니다.

perlop 매뉴얼 페이지를 참조하십시오.

7

당신이 묻는 것은 보간입니다. 더 구체적으로는 "여기-문서"라는 구문을 함께 할 수있는 방법을 perldoc perlop"Quote-Like Operators"에 대한 문서를 볼 수 있지만, 작은 따옴표와 함께 :

따옴표는 텍스트가 더와 문자 그대로 처리되지 것입니다 나타냅니다 그 내용의 보간법. 백 슬래시가 특별한 의미가 없다는 점을 제외하고는 작은 따옴표로 묶은 문자열과 비슷합니다. \는 두 개의 백 슬래시로 처리되고 다른 모든 인용 구성에서는 처리되지 않습니다.

이것은 탈출하는 콘텐츠, 코드 생성기가 잘 활용할 수있는 것에 대해 걱정할 필요가없는 펄에서 인용하는 유일한 형태입니다. 예를 들어

:

my $address = <<'EOF'; 
[email protected]\with\backslashes\all\over\theplace 
EOF 

그들은 매우 일반적으로 사용되는대로 (내가 위에서 언급 한 것과 같은 문서를) 같은 qwqq 같은 다양한 인용 사업자에 읽을 할 수 있습니다 또 다른 길어지는 콘텐츠 이탈 방법에 대한 좋은 속기를하십시오.

+0

나는 그 하나도 생각했다! 어떤 이유로 나는 여전히 백 슬래시를 보간 할 것이라고 생각했다. 바보 같은 파이썬 내 문자열 보간을 섞어 만들기. (이 답변에 덧붙일 유일한 메모는 데이터 끝 부분에 개행 문자를 추가하는 것이 바람직하지 않을 수 있다는 것입니다.) –

+0

@Chris : 실제로,'substr()'또는'chomp 멋지게 고쳐주세요. – Ether

+3

그러나 작은 따옴표로 묶인 문자열에서 'and \ even을 이스케이프 처리 할 수 ​​있다는 것을 잊지 마십시오. 나는 그 점을주의하도록 문서를 변경해야한다. :) –

1

작은 따옴표를 사용하십시오. 예를 들어

print 'lots\of\backslashes', "\n"; 

는 변수를 보간 할 경우의 끝에 백 슬래시를 이스케이프

$var = "pesky"; 
print 'lots\of\\' . $var . '\backslashes', "\n"; 

공지 사항에 같이 . 연산자를 당신이 그 사용

lots\of\backslashes

제공 문자열.

대안으로 join를 사용할 수 있습니다 : 당신이 우리에게 샘플 코드를 제공하려는 경우

print join("\\" => "lots", "of", $var, "backslashes"), "\n"; 

우리는 훨씬 더 도움이 답변을 줄 수 있습니다.

0

사용 backslah 두 번,

print "This is a backslah character \\"; 
관련 문제