perlのコンテキストについて2012-04-14perlのコンテキストについてperlを書いているときは「コンテキスト」のことについて、ずっと意識している必要がある。コンテキストを理解していれば、スカラー変数や配列変数のどちらを使うかリファレンスにすべきところデリファレンスすべきところなどが、なんとなく判別できるようになる。コンテキストは、以下の二種類がある。スカラーコンテキストリストコンテキストスカラーコンテキストとは以下のようなものが書かれているところ。リファレンスリストコンテキストとは以下のようなものが書かれているところ。リストperlプログラムを書いているときは、どちらのコンテキストになっているのかを意識するようにする。代入では、左辺と右辺がそれぞれどのコンテキストになっているのかを意識する。ほとんどの場合は、同じコンテキストになるようにする。左辺も右辺もスカラーコンテキストの場合。$a;左辺も右辺もリストコンテキストの場合。%a;配列とハッシュは共にリストコンテキストになるので、相互代入することができる。perlのハッシュで使われている「=>」は、「,(コンマ)」と等価になる。※順番は保持されないリファレンスはスカラー値なので、スカラー変数で受け取る。};配列リファレンスをデリファレンスすると、リストコンテキストになるので、配列変数で受け取る。ハッシュのリファレンスも同じ感じ。};for文for文のカッコの中はリストコンテキストになるので、リストを渡すようにする。関数の引数は、無名配列「@_」で受け取られる。左辺がリストコンテキストである場合の代入だと考えると良い。@_;}配列リファレンスを引数にする場合。};}関数の返り値を受け取る場合も、返り値のコンテキストを意識する。func3();その他参考ページこの他にも色々なパターンや例外があるので、後は以下のようなページで参考にする。はてなブログProプログラマです。フロントエンド開発、バックエンド開発、仮想インフラ構築などを行っています。現在はGo/Javascript/Unity/AWS/Dockerを主に使用しています。アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。