a2p(Awk to Perl 변환기)가 기본적으로 설치되는 이유는 무엇입니까? 왜 Awk를 Perl로 변환하고 싶나요?

a2p(Awk to Perl 변환기)가 기본적으로 설치되는 이유는 무엇입니까? 왜 Awk를 Perl로 변환하고 싶나요?

a2p내 Linux 배포판에 이 유틸리티가 기본적으로 설치되어 있다는 사실에 놀랐습니다 .

a2p다음을 변환하는 명령줄 유틸리티입니다.프로그램표준 입력출력하는 프로그램표준 출력.

왜 내가 변환하고 싶겠습니까?프로그램을내가 있을 때 프로그램통역사가 설치되어 있나요?

왜 그럴까요?리눅스배포판은 a2p기본 설치에 포함되어 있습니까?

답변1

이러한 도구를 사용하여 스크립트의 효율성을 높일 수 있습니다 perl.

더 큰 프로그램이 있고 하위 프로세스를 호출하지 않고 스크립트 perl기능을 통합하려는 경우 이 작업을 수행할 수 있습니다 . 생성된 코드를 awk호출 a2p하여 기존 Perl 스크립트에 통합합니다.

find2perl하위 프로세스에 대한 호출을 피하면서 명령줄 을 사용하여 동일한 작업을 수행하는 코드를 find생성하는 유사한 유틸리티가 있습니다 .perlfind

이는 perl스크립트를 위한 최적화 도구입니다.

답변2

  1. 기본적으로 설치되는 이유는 무엇입니까? : 사용 중인 배포판의 개발자/유지관리자에게 달려 있습니다.

  2. 왜 필요할까요?a2p

어쨌든 인수가 항상 정수임에도 불구하고 숫자 해석을 강제하기 위해 문자열 표현식 주위에 int()를 두는 이상한 관용구가 있습니다. 이것은 일반적으로 Perl에서는 필요하지 않지만 a2p는 인수가 항상 정수인지 알 수 없으므로 그대로 둡니다. 제거하고 싶을 수도 있습니다.

Perl은 숫자 비교와 문자열 비교를 구별합니다. Awk에는 런타임 시 어떤 비교를 수행할지 결정하는 연산자가 하나 있습니다. A2p는 이 시점에서 awk 에뮬레이션의 완전한 작업을 수행하려고 시도하지 않습니다. 대신 당신이 원하는 것을 추측합니다. 거의 항상 옳지만 스푸핑될 수 있습니다. 이러한 추측은 모두 "#???" 주석으로 표시됩니다. 당신은 그것을 통해 확인해야합니다. Perl에 -w 스위치를 사용하여 최소한 한 번 실행하고 싶을 수도 있습니다. 이는 eq를 사용해야 하는 곳에서 ==를 사용하면 경고합니다.

자세한 내용은 :A2P

관련 정보