Perl入門ゼミPerl入門ゼミテキスト処理、Linuxサーバー管理、Web開発ならPerlPerl›リファレンス›here配列のリファレンスPerlには配列のリファレンスというデータ構造が頻繁に登場します。このページでは、リファレンスの中から配列のリファレンスを詳しく取り上げます。配列のリファレンスとは配列のリファレンスとは、配列に対するリファレンスのことです。リファレンスというのは、指すということを表します。配列に対して、リファレンス生成子「\」を使用すると、配列のリファレンスを作成することができます。\@nums;配列のリファレンスは、スカラ変数に代入されるとういうことに注意してください。配列のリファレンスのイメージを以下に書いてみます。5)配列のリファレンスは、配列そのものではなく「配列を指し示すもの」を表現します。配列のリファレンスは代入で中身がコピーされない配列と配列のリファレンスの違いをここから見ていきましょう。配列は、代入によって、中身がすべてコピーされますが、配列のリファレンスはコピーが行われません。$nums_ref1;以下はイメージです。配列の場合は、中身すべてがコピーされるのに対して、配列のリファレンスは、中身ではなく、リファレンスそのものがコピーされます。5)サブルーチンに渡す場合は、配列のリファレンスを渡す方が、中身のコピーが行われないので、効率が良くなります。リファレンスは、リファレンス生成子「\」を使用すると作成できますが、少し手間がかかります。配列のリファレンスを作成するために、無名配列生成子と呼ばれる演算子が定義されています。5];通常の配列が「()」で作成されるのに対して、配列のリファレンスは無名配列生成子「[]」を使って生成されているのに注意してください。Perlのソースコードでは、この記法が頻繁に登場します。配列なのか、配列のリファレンスなのかをソースコードから読み取ることが大切です。5];デリファレンス配列のリファレンスを生成するには、リファレンス生成子を使いました。今度は反対に配列のリファレンスから、配列を取り出してみましょう。そのためにはデリファレンスという操作を行います。@{$nums_ref};デリファレンスは「@{配列のリファレンス}」という記法を使って行うことができます。配列のリファレンスがスカラ変数の場合は「{}」を省略することもできます。@$nums_ref;標準関数に引数として渡すshift関数、unshift関数、pop関数、pushなどの配列に関する関数は、引数に配列をとります。そのため、配列のリファレンスを渡したい場合は、デリファレンスする必要があるので注意してください。@$array;配列のリファレンスから配列の値を取り出す配列のリファレンスから配列の値を取り出すにはアロー演算子「->」を使うことができます。67;アロー演算子が使われている場合は、配列のリファレンスです。ない場合は、配列です。これもソースコードの中で、しっかり読み取れるようになってください。67;アロー演算子のあるなしだけで、配列なのか配列のリファレンスなのかが異なるので、しっかり見ることが大切です。ハッシュのリファレンス配列のリファレンスと同じくらい頻繁に利用されるものとしてハッシュのリファレンスがあります。89};ハッシュのリファレンスについては以下で詳しく解説しています。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebサービス開発も。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。