perl 配列

2015.01.25 Sunday 15:56
0

    配列と連想配列とリファレンス

    Perl | 配列と連想配列とリファレンスを含むブックマーク

    配列と連想配列(ハッシュ)と配列リファレンスとハッシュリファレンスの書き方が全部異なるのが、Perl を異界の呪文に見せている原因だと思います。正直自分も時々忘れますし、全部 Array で済む PHP のほうが最近は好きです(PHP5の話、PHP4はたぶん一生使いません)。

    関数内で中身を書き換えたいときはリファレンスにして渡します。配列や連想配列(ハッシュ)のまま関数に渡すと値が全部展開されてコピーされるので、メモリーもすごく食うし、時間もすごくかかります。通常はリファレンスで扱ったほうがいいと思います。

    ただ、リファレンスを配列や連想配列(ハッシュ)として扱いたいときは @$array や %$hash とデリファレンスしてやらなければならないので、これはこれで面倒くさいですが・・・。

    結論:Perl は使うな(笑)

    ちなみにスカラーとスカラーリファレンス、関数と関数リファレンスもあります(汗)。リファレンスは C 言語のポインターのようなものと考えるとすっきり理解できます(使い方もほぼ一緒)。
    配列

    my @array = ('a', 'b', 'c');
    my $val1 = $array[0];
    push(@array, 'd');

    連想配列(ハッシュ)

    my %hash = ('a' => 1, 'b' => 2, 'c' => 3);
    my $val1 = $hash{'a'};

    配列リファレンス

    my $array = ['a', 'b', 'c'];
    my $val1 = $array->[0];
    push(@$array, 'd');

    または

    my @array1 = ('a', 'b', 'c');
    my $array2 = ¥@array1;
    my $val1 = $array2->[0];

    ハッシュリファレンス

    my $hash = {'a' => 1, 'b' => 2, 'c' => 3};
    my $val1 = $hash->{'a'};

    または

    my %hash1 = ('a' => 1, 'b' => 2, 'c' => 3);
    my $hash2 = ¥%hash1;
    my $val1 = $hash2->{'a'};

    category:perl | by:ittoocomments(0)trackbacks(0) | -

    スポンサーサイト

    2020.07.25 Saturday 15:56
    0
      category:- | by:スポンサードリンク | - | - | -
      Comment








         
      Trackback
      この記事のトラックバックURL

      ad
      Calender
            1
      2345678
      9101112131415
      16171819202122
      23242526272829
      3031     
      << August 2020 >>
      Selected entry
      PR
      Category
      Archives
      Recent comment
      • パス指定 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated ¥xXX escape
        久米隆文
      • 円マークが自動変換されてる
        aaaaaa
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        66hills
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        ssd
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        max
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • コンピュータ業界の根本的な変化
        cloud
      • コンピュータ業界の根本的な変化
        Dellの仮想化
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        えちごや
      Recent trackback
      • スマートフォンの法人活用例
        無線LANネットのブログ
      • Yahoo!オークションからのアフィリエイト収入が一気に70%減になってしまい涙目になってる話
        特選情報
      Recommend
      Link
      Profile
      Search
      Others
      Mobile
      qrcode
      Powered
      無料ブログ作成サービス JUGEM