2013-01-10 6 views
2

나는 Perl split을 2 시간 이상 일하려고 노력 중이다. 나는 오류를 보지 않는다. 어쩌면 다른 사람들의 눈이 그것을보고 문제를 볼 수 있습니다. 나는 그 바보 같은 것이라고 확신한다.왜 분할이 반환하지 않습니까?

@versionsplit=split('.',"15.0.3"); 

print $versionsplit[0]; 
print $versionsplit[1]; 
print $versionsplit[2]; 

나는 방금 빈 배열을 얻는다. 왜 그런가?

답변

14

당신이 필요합니다 split

@versionsplit=split(/\./,"15.0.3"); 

첫 번째 인수는 정규 표현식이 아닌 문자열입니다. .은 '모든 문자와 일치'를 의미하는 정규식 기호입니다. 따라서 입력 문자열의 모든 문자는 구분자로 취급되며 split은 반환 할 항목이 없습니다.

1

"."은 문자를 나타냅니다. 분리 기호가 필드 구분 기호로 인식되도록하려면 이스케이프 처리해야합니다.

@versionsplit=split('\.',"15.0.3"); 
+0

에 줄을 변경 나는 일치 연산자에 split' '에 첫 번째 인수를 넣어 ('//')는 정규식으로 해석 있다는 사실을 강화 것을 찾을 수 있습니다. –

관련 문제