- ベストアンサー
$abc[1] と @abc[1] の違いについて
$abc[1]は理解できるのですが、 @abc[1]がわかりません、 宜しくお願いします。
- みんなの回答 (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] とした方がよいでしょう。
補足
回答有難うございます、 「配列スライス」はどんな場合使うのですか