Perl 함수 ($$) 형식의 특별한 점은 무엇입니까?

앵거스 컴버

다음과 같은 형식의 기능을 상속 받았습니다.

sub func($$) {

}

나는 다음을 보는 데 더 익숙합니다.

sub func {
  ## then extract params using shift for example
}

나는 조회 $$했고 현재 프로세스 ID를 얻는 수단입니다. 하지만 함수를 살펴보면 여기에서 프로세스 ID가 사용 된 것처럼 보이지 않습니다. 그래서이 $$맥락에서 다른 것을 의미합니까?

내가 의아해하는 기능은 아래의 parseMessage입니다. ($$)?

use FileHandle;

# The structure of function is pretty much like this - names changed only
sub parseMessage($$)
{
  my $string = shift;
  my $fileHandle = shift;

  my $Message = undef;

  # parseAMessage and parseBMessage are functions to extract specific types of messages from file
  if ( ($Message = parseAMessage($string, $fileHandle))
    || ($Message = parseBMessage($string, $fileHandle)) )
  {

  }

  return $Message;
}


sub parseAMessage($$)
{
}

sub parseBMessage($$)
{
}

# The function seems to use arguments arg1: string from file, arg2: filehandle of file
# presumably idea behind this is to process current line in file but also have access to file
# handle to move to next line where required. So the way I am calling this is probably not
# great Perl - I am a beginner perler
$fh = FileHandle->new;
    if ($fh->open("< myfile.log")) {
        # here we evaluate the file handle in a scalar context to get next line
        while($line = <$fh>) {
            parseMessage($line, $fh);   
            #print <$fh>;
        }

        $fh->close;
    }
    print "DONE\n";
1;
잭 레이튼

그것들은 프로토 타입이며 함수가 인수로 취하는 것을 정의합니다 (안전하지 않습니다 ..).

그것은 당신이 당신이 호출하는 sub doSomething것처럼 호출 할 수 있도록 내장 함수와 같은 함수를 정의 할 수 있습니다 print.

doSomething($scalar)doSomething $scalar처럼 동일한 결과를 생성 할 print($scalar)print $scalar

위의 의견에 따라 : http://perldoc.perl.org/perlsub.html#Prototypes

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Perl에서 함수 호출과 goto & NAME의 차이점은 무엇입니까?

Linux 권한 004의 특별한 점은 무엇입니까?

'창'에서 '함수'식별자의 요점은 무엇입니까?

Generic.xaml의 특별한 점은 무엇입니까?

구조체의 특별한 점은 무엇입니까?

787의 특별한 점은 무엇입니까?

포트 6000의 특별한 점은 무엇입니까?

UI 스레드의 특별한 점은 무엇입니까?

amd64 + mac ISO의 특별한 점은 무엇입니까?

CardLayout과 JPanel의 수동 추가 / 제거의 특별한 점은 무엇입니까?

ELF의 특수 섹션 형식은 무엇입니까?

Perl에서 Point 클래스에 대한 임의의 함수를 만드는 방법은 무엇입니까?

Akka의 케이스 클래스의 특별한 점은 무엇입니까?

이 (간단한) 람다 함수의 문제점은 무엇입니까?

함수에서 유형의 요점은 무엇입니까 -- golang

Numpy : 0.5로 나누기의 특별한 점은 무엇입니까?

AWS 용 169.254.169.254 IP 주소의 특별한 점은 무엇입니까?

Linux에서 파일 설명자 3의 특별한 점은 무엇입니까?

브라우저용 localhost의 특별한 점은 무엇입니까?

파이썬에서 replace () 메서드의 특별한 점은 무엇입니까?

LMDB의 내부 설계에서 특별한 점은 무엇입니까?

펄 임포트 서브 루틴의 특별한 점은 무엇입니까?

hicolor 아이콘 테마의 특별한 점은 무엇입니까?

";"의 의미는 무엇입니까? Perl 서브 루틴에 대한 형식 매개 변수를 정의 할 때?

필요한 형식에 따라 BeautifulSoup의 get_text 함수를 수정하는 방법은 무엇입니까?

Django 모델 형식에서 clean 함수와 full_clean 함수의 주요 차이점은 무엇입니까?

"perl -n"과 "perl -p"의 차이점은 무엇입니까?

Ramda를 사용하여 JavaScript의 간단한 평균 함수를 점없는 형식으로 변환하는 방법은 무엇입니까?

템플릿이없는 함수에 대한 제약 표현식의 요점은 무엇입니까?

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관