• ベストアンサー

$abc[1] と @abc[1] の違いについて

$abc[1]は理解できるのですが、 @abc[1]がわかりません、 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

> 「配列スライス」はどんな場合使うのですか うーん、私はあまり配列スライスは使わないのでよい例が浮かびませんが、、^^; 例えば、検索を行うCGIなどでページ分割を行う時、@data に検索結果全件が入っているとして、   my $lines = 50;           # 1ページに表示する件数   my $page = $FORM{page} - 1;  # 表示するページ   @data = @data[$page*$lines .. ($page+1)*$lines-1]; みたいな感じで、表示する部分を抽出するとかかな?

その他の回答 (1)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

$abc[1] は「配列要素」ですよね。 @abc[1] は「配列スライス」と呼ばれるものです。 例えば   @abc = ('A', 'B', 'C', 'D'); の時、   @def = @abc[2,3,0]; とすると、@def の中身は   ('C', 'D', 'A') となります。 また、左辺に置くこともでき、   @abc[1,3] = ('X', 'Y'); とすると、@abc の中身は   ('A', 'X', 'C', 'Y') となります。 @abc[1] では取り出す要素が1つだけなので、$abc[1] とやっていることは大して変わりません。 が、そもそもの使用目的が違いますので、要素を1つだけ取り出す場合は $abc[1] とした方がよいでしょう。

hana3090
質問者

補足

回答有難うございます、 「配列スライス」はどんな場合使うのですか

関連するQ&A