%EA%B0%80%20%EA%B8%B0%EB%B3%B8%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%84%A4%EC%B9%98%EB%90%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%EC%99%9C%20Awk%EB%A5%BC%20Perl%EB%A1%9C%20%EB%B3%80%ED%99%98%ED%95%98%EA%B3%A0%20%EC%8B%B6%EB%82%98%EC%9A%94%3F%20.png)
a2p
내 Linux 배포판에 이 유틸리티가 기본적으로 설치되어 있다는 사실에 놀랐습니다 .
a2p
다음을 변환하는 명령줄 유틸리티입니다.앗프로그램표준 입력에펄출력하는 프로그램표준 출력.
왜 내가 변환하고 싶겠습니까?앗프로그램을펄내가 있을 때 프로그램앗통역사가 설치되어 있나요?
왜 그럴까요?리눅스배포판은 a2p
기본 설치에 포함되어 있습니까?
답변1
이러한 도구를 사용하여 스크립트의 효율성을 높일 수 있습니다 perl
.
더 큰 프로그램이 있고 하위 프로세스를 호출하지 않고 스크립트 perl
기능을 통합하려는 경우 이 작업을 수행할 수 있습니다 . 생성된 코드를 awk
호출 a2p
하여 기존 Perl 스크립트에 통합합니다.
find2perl
하위 프로세스에 대한 호출을 피하면서 명령줄 을 사용하여 동일한 작업을 수행하는 코드를 find
생성하는 유사한 유틸리티가 있습니다 .perl
find
이는 perl
스크립트를 위한 최적화 도구입니다.
답변2
기본적으로 설치되는 이유는 무엇입니까? : 사용 중인 배포판의 개발자/유지관리자에게 달려 있습니다.
왜 필요할까요?
a2p
어쨌든 인수가 항상 정수임에도 불구하고 숫자 해석을 강제하기 위해 문자열 표현식 주위에 int()를 두는 이상한 관용구가 있습니다. 이것은 일반적으로 Perl에서는 필요하지 않지만 a2p는 인수가 항상 정수인지 알 수 없으므로 그대로 둡니다. 제거하고 싶을 수도 있습니다.
Perl은 숫자 비교와 문자열 비교를 구별합니다. Awk에는 런타임 시 어떤 비교를 수행할지 결정하는 연산자가 하나 있습니다. A2p는 이 시점에서 awk 에뮬레이션의 완전한 작업을 수행하려고 시도하지 않습니다. 대신 당신이 원하는 것을 추측합니다. 거의 항상 옳지만 스푸핑될 수 있습니다. 이러한 추측은 모두 "#???" 주석으로 표시됩니다. 당신은 그것을 통해 확인해야합니다. Perl에 -w 스위치를 사용하여 최소한 한 번 실행하고 싶을 수도 있습니다. 이는 eq를 사용해야 하는 곳에서 ==를 사용하면 경고합니다.
자세한 내용은 :A2P