perl 함수 예제

이 함수가 요구 또는 사용을 통해 별도의 파일에서 공급되는 경우 이 기능은 아마도 괜찮습니다. 메인 프로그램에 모두 있는 경우 전체 블록을 기본 프로그램 위에 놓거나, 프로그램 실행 전에 실행되기 전에 BEGIN 코드 블록을 배치하여 일찍 실행되도록 준비해야 합니다. : 서브루틴의 이름 앞에 괄호를 작성해서는 안 됩니다. 함수를 호출할 때 괄호를 사용할 수 있지만: 모듈 내의 함수에서 참조가 반환되지 않는 한 외부 모듈은 해당 이름이 패키지의 기호 테이블에 없기 때문에 하위 루틴을 볼 수 없습니다. 그것은 정말 $some_pack:::secret_version 또는 아무것도 라고 하지 기억; 그것은 단지 $secret_버전, 자격이 없고 자격이 없습니다. 이름이 모든 대문자에 있는 하위 루틴은 모든 소문자에 이름이 있는 모듈과 마찬가지로 Perl 코어에 예약되어 있습니다. 모든 대문자의 서브루틴은 느슨하게 유지되는 규칙이므로 일반적으로 트리거된 이벤트로 인해 런타임 시스템 자체에 의해 간접적으로 호출됩니다. 왼쪽 괄호로 시작하는 이름의 하위 루틴도 동일한 방식으로 예약됩니다. 다음은 현재 미리 정의된 특수 작업을 수행하는 일부 하위 루틴의 목록입니다. 함수 정의는 매우 간단합니다. 하위 함수 이름 { }로 구성됩니다.

펄 함수 정의는 더 이상 복잡하지 않습니다. 실제로 이러한 방식으로 호출하려는 함수를 미리 선언하는 경우 괄호가 필요하지 않습니다. 또한 C의 함수 정적을 시뮬레이션할 수 있는 방법도 제공합니다. 다음은 어휘 범위와 정적 수명을 모두 갖춘 함수 전용 변수를 제공하는 메커니즘입니다. C의 정적 변수와 같은 것을 만들려면 전체 함수를 추가 블록에 넣고 정적 변수를 함수 외부가 아니라 블록에 넣으려면 이 프로그램은 인쇄 : 78.5375뭔가 인쇄하는 사실은 프로그램 흐름이 areaOfCircle () 함수를 호출 한 후 인쇄 라인으로 반환 것을 알려줍니다. 프로토타이핑을 이전 기능으로 개조하는 것이 아니라 새로운 기능을 프로토타입화하는 것이 가장 좋습니다. 스칼라 컨텍스트와 다른 목록의 자동 부과에 특히 주의해야 하기 때문입니다. 예를 들어 함수가 다음과 같이 하나의 매개 변수만 가져가야 한다고 결정한 경우: 이 프로그램은 인쇄됩니다: 함수 호출 전에 배열 = 0 1 2 3 4 5 함수 호출 후, 배열 = A B2 3 4 5함수가 주 프로그에서 @array 변수에 영향을 줄 수 있음을 알 수 있습니다. 오전.