사람들이 "Perl은 구문 분석에 매우 능숙하다"고 말하는 것은 무엇을 의미합니까?[닫은]
-
19-09-2019 - |
문제
사람들이 "Perl은 구문 분석에 매우 능숙하다"라고 말하는 것은 무엇을 의미합니까?
Perl은 Python이나 Ruby와 같은 다른 스크립팅 언어보다 어떻게 더 우수하고 강력합니까?
해결책
Perl은 원래 텍스트 파일을 처리하도록 설계되었으며 쉽게 쉽게 기능 할 수있는 기능이 있음을 의미합니다.
- Perl에는 문자열 처리를위한 많은 기능이 있습니다.
substr
,index
,chomp
,length
,grep
,sort
,reverse
,lc
,ucfirst
, ... - Perl은 값 사용 방법에 따라 숫자와 문자열을 자동으로 변환합니다. (예 : 파일에서 문자열 '100'을 읽고 먼저 정수 변환을 위해 문자열을 할 필요없이 하나를 추가 할 수 있습니다)
- PERL은 플랫폼 인코딩 (예 : Windows의 CRLF) 및 프로그램 내의 논리적 인 Newline ( " n")으로의 변환을 자동으로 처리합니다.
- 일반 표현식은 별도의 라이브러리 대신 구문에 통합됩니다.
- Perl의 정규 표현식은 전력 및 기능을위한 "골드 표준"입니다.
- Perl에는 전체 유니 코드 지원이 있습니다.
Python과 Ruby에는 텍스트 처리를위한 좋은 시설도 있습니다. (루비는 특히 Perl이 다른 많은 언어에서 부끄럽게 빌린 것처럼 Perl에서 많은 영감을 얻었습니다.) 어느 것이 더 나은지 묻는 점은 거의 없습니다. 당신이 좋아하는 것을 사용하십시오.
다른 팁
Perl의 장점을 다른 언어의 단점으로 받아들이지 마십시오.Perl은 텍스트 처리에 적합하지만 Ruby나 Python이 형편없다는 의미는 아닙니다.
사람들이 Perl이 "분석에 좋다"고 말할 때 그들은 주로 Perl의 역사를 반영하고 있습니다.그것은 강력한 텍스트 처리가 쉽지 않던 시절에 발명되었습니다.C나 C++에서 그 중 일부를 시도해 보십시오(Java도 아직 발명되지 않았습니다!).예전에 Larry는 sed와 awk를 사용하여 작업을 시도했지만 한계에 부딪혔습니다.그는 텍스트 작업을 더욱 쉽게 만드는 도구를 만들었습니다.
Perl은 여전히 텍스트 조작 작업에 매우 적합하지만 이제는 다른 많은 언어도 마찬가지입니다.
Perl은 ETL 또는 배치 처리 동작에도 좋습니다. 파일을 선택하는 것은 최소한의 코드입니다. 밀어 넣으십시오 split
얻기 위해 map
, 레코드에서 논리적 인 비즈니스 작업을 수행하고 디스크에 다시 작성하십시오.
데이터가 구문 분석보다 더 많은 데이터 처리라고 생각하지만 데이터 처리는 대량 데이터 구문 분석입니다.
Perl은 C/C ++/Java와 비교할 때 텍스트 구문 분석이 매우 좋습니다.
아마도 사람들은 Perl 문서, 따라서 많은 사람들이 텍스트 파일의 구문 분석을 PERL과 연관시키는 것이 일반적이되었습니다. 루비 나 파이썬을 배제하지 않으면, 그것은 단지 가구 이름 IMHO 일뿐입니다.
Perl은 임의의 텍스트 파일을 스캔하고 해당 텍스트 파일에서 정보를 추출하고 해당 정보를 기반으로 보고서를 인쇄하는 데 최적화 된 언어입니다. 또한 많은 시스템 관리 작업에 좋은 언어이기도합니다. 언어는 아름답고 (작고, 우아하고, 최소한)보다 실용적 (사용하기 쉽고 효율적이며 완전)을 고안했습니다.