2011-11-24 2 views
-4

나는 문자열 조작을 위해 Perl을 사용하고 있으며 역순 함수와 tr을 사용하여 내 문자열을 변환합니다. 스크립트는 다음을 수행 한 후 일부 문자열을 읽고 :Perl의 tr /// 연산자의 첫 번째 부분에서 지정되지 않은 문자는 어떻게됩니까?

$revread = reverse($newword); 
$revread =~ tr/TACGN/ATGCN/; 

그래서 단어가 반전 된 후 변환됩니다 - 보완 역.

무엇 사용

$revread=~ tr/TACG/ATGC/; 

경우 : 나는 다음과 같은 질문이 있습니다. 이 경우 "N"이 발견되면 건너 뜁니 까? tr에서와 같이 번역 할 항목이 없거나 "N"과 같이 인쇄됩니다.

+10

간단한 2 라인 perl 프로그램에서 테스트하는 것은 어떻습니까? –

+2

또는'perldoc perlop'을 읽는 중입니까? gre /'tr /'? – Dan

+0

왜 "N"이 제거 될 것이라고 생각하십니까? 나 한테 이해가 안돼. – TLP

답변

5

예, 내부에 지정되지 않은 것은 tr입니다.

tr///에 대한 문서는 상세한 예보다는 perldoc perlop에 나열되어 있어요으로 얻을 조금 어렵다 보통 perldoc perlfunc

+0

감사합니다. 지금 아주 분명해. perl 문서는 다른 의문점도 제거했습니다 ... 이제는 처음으로 갈 것입니다 .. – Sudeep

+0

tr ///에 대한 문서는 perlop에 있지만 perlfunc가 아니라 연산자이기 때문에 작동합니다 :-) –

+0

최신 perldoc에 대한 패치는 이제 -f 스위치와 함께 tr을 찾을 것입니다. :) –

2

하기 Aleks G는 정답이있다 : 그냥보십시오.

나는 그것을 시도했다. 나는 그것을 발견했다 :

> perl -wE '$x = qq(abcdefg); $x=~ tr/abc/123/; say $x;' 
123defg 

음역에없는 문자는 그대로 남겨 둡니다. 문서 here.

+0

감사합니다. 좋은 본보기. 도움이 됐어. – Sudeep