のオペレーター => (脂カンマ)で区切りPerl

のオペレーター => があります。 では最も一般的に使用 の説明Perlのハッシュ. 次に例を示します。

▶ Run
#!/usr/bin/perl

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

のオペレーター => は統語はするべきではないということ。 この演算子が使用されていますの代わりにカンマ演算子 ,, ものとは異なりのカンマ演算子では、左被演算子の文字列としてずに同封してくださ お見積もり。 ここでは非常に類似のプログラミング言語のPerlのハッシュがコンマで区切:

▶ Run
#!/usr/bin/perl

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

の説明のハッシュは常により良い使用のオペレーター => のキー-値 この利用がより明確なコードです。

の代わりにカンマ演算子 , を利用できることが => (そ. が必ずしもそうではない ことでしょう。 こちらは別のハッシュ、などの名前がない 必要なもの

▶ Run
#!/usr/bin/perl

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

のオペレーター => として、"脂カンマで区切った行為のようにコンマで区切(一部加)、 だから文字の代わりにします。

左側のオペランド

のオペレーター => が考慮される文字列の左被演算子のみの場合、下記の条件がtrue:

  • 左側のオペランドで始まる文字-記号 _
  • 左被演算子を含む文字、数字、記号 _

このコードはこのお仕事では、だいたい年に何左側のオペランドの象徴である -):

▶ Run
#!/usr/bin/perl

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

必ず明示的に入 some-key 価: '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.

その他の記事