운전자 => (지방 쉼표)Perl

운전자 => 사용하여 별도의 값이 있습니다. 그것은 가장 일반적으로 사용되는 에 대한 설명 Perl 해시입니다. 예를 들어 다음과 같습니다.

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1,
    b => 2,
);

운전자 => 는 구문 설탕이다. 이 연산자를 대신에 사용되는 쉼표자 ,, 달리하지만 쉼표 연산자,그의 왼쪽 연산자로서 문자열하지 않고로 묶 큰따옴표로 묶여 있습니다. 여기에 매우 유사한 설명의 펄 해시,하지만 쉼표를 사용하여:

▶ Run
#!/usr/bin/perl

my %h = (
    'a', 1,
    'b', 2,
);

에 대한 설명 해시는 항상 더 나은 사용하는 운영자 => 하여 별도의 키-값 이 때문에 사용하는 것은 더 명확한 코드입니다.

대표자 , 항상 사용할 수 있습니다 => (그러나 그 반대의 경우도 마찬가지). 하지만 항상 그렇게 하지 가치가있다. 여기에는 다른 대한 설명 해시,작동하는 같은 이전의 두 가지지만, 요:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1 =>
    b => 2 =>
);

운전자 => 은 종종"지방 쉼표"라는 역할을 하기 때문에 같은 쉼표(일부한), 하지만 두 개의 문자로 구성되어 있는 대신 하나입니다.

왼쪽 피연산자

운전자 => 간주하는 문자열의 왼쪽 연산자인 경우에만 다음 조건에 해당합니다.

  • 왼쪽 연산자 문자로 시작하거나 상징 _
  • 그리고 왼쪽 연산자만 포함될 수 있는 문자,숫자,기호 _

그래서 이 코드는 것이 작동하지 않기 때문에(왼쪽 연산자 상징 -):

▶ Run
#!/usr/bin/perl

my %h = (
   some-key => 3, # error!
);

해야 합니다 명시적으로 입력 some-key quoted: 'some-key'.

사용하지 않에 해시

운전자 => 첫 번째 장소에서 사용하는 것을 설명하는 값 쌍으로 해시입니다. 보 화살표 사용하는 경우에는 해시,그것은 매우 유기—키 포인트를 값을 입력합니다. 그러나 운영자 => 뿐만 아니라 사용할 수 있습니다 해시,그러나 일반적으로 목록에(항상은 아니지만 그것이 의미가). 여기에 예를 들어 이용자에 배열:

▶ Run
#!/usr/bin/perl

my @arr = ( one => two => 'three' );

이 예제에서 만들어진 배열에 있는 3 개의 행이 있습니다. 기 때문에 운전자는 사용되었 =>, 왼쪽 피연산자가 될 수 없을 따옴표로 묶습니다. 따라서 첫 번째 두 줄은 사용하지 않고 따옴표입니다. 오른쪽에는 연산자의 이 마법을 적용하지 않도록,세 번째 줄을 했을 따옴표로 묶.

이 예제는 더 나은 것을 사용하여 작성자 qw:

▶ Run
#!/usr/bin/perl

my @arr = qw(one two three);

운영자를 작성해야 함

운전자 => 두 개의 문자로 구성되어 있고 그러한 두 자이어야 합니다. 그것은 배치하는 것은 불가능하 그들 사이의 공간. 는 경우에 당신이 쓰는 경우에 = >될 것이다. 여기서의 예는 잘못된 코드:

▶ Run
#!/usr/bin/perl

my %h = (
    a = > 1, # error!
);

의 코드를 실행하는 경우,그것이 화면에 나타납니다:

syntax error at script.pl line 4, near "= >"
Execution of script.pl aborted due to compilation errors.

공식적인 문서

여기에 조각의 출력 perldoc perlop 에 대한 운영자 =>:

    The "=>" operator (sometimes pronounced "fat comma") is a synonym for the
    comma except that it causes a word on its left to be interpreted as a
    string if it begins with a letter or underscore and is composed only of
    letters, digits and underscores. This includes operands that might
    otherwise be interpreted as operators, constants, single number v-strings
    or function calls. If in doubt about this behavior, the left operand can
    be quoted explicitly.

    Otherwise, the "=>" operator behaves exactly as the comma operator or list
    argument separator, according to context.

    For example:

        use constant FOO => "something";

        my %h = ( FOO => 23 );

    is equivalent to:

        my %h = ("FOO", 23);

    It is NOT:

        my %h = ("something", 23);

    The "=>" operator is helpful in documenting the correspondence between
    keys and values in hashes, and other paired elements in lists.

        %hash = ( $key => $value );
        login( $username => $password );

    The special quoting behavior ignores precedence, and hence may apply to
    part of the left operand:

        print time.shift => "bbb";

    That example prints something like "1314363215shiftbbb", because the "=>"
    implicitly quotes the "shift" immediately on its left, ignoring the fact
    that "time.shift" is the entire left operand.

다른 기사