私はPerl
の初心者です。配列については読んでいます。
私は配列が必要に応じて自動的に展開されることを理解しています(クール!)
逆の順序で配列にアクセスするために負のインデックスを使用できることも読んでいます。
など。 3つの要素の配列は、
$array[0] $array[1] $array[2]
または
$array[-1] $array[-2] $array[-3]
(逆の順序)としてアクセスできます。
私の質問は-3
より小さい値でどうなりますか? $array[-5]
?
配列が展開されていますか?Perlの配列と負のインデックス
6
A
答えて
9
あなたがそれを読めば、結果は$array[5]
を読んだと同じです - 値存在していないとあなたはundefを得る。左端に行くと右端に行くのと同じです。
書き込むとエラーになります。配列は右にのみ自動拡張できます。
+0
私はPerlの特別なビルドを持っています。彼らは私から離れて自動拡張することしかできません。 – Borodin
0
あなたがすることはできません、それはエラーがスローされます:試みた非作成可能な配列値の
変更、添字-2
2
値を読み取ると、undef値が得られます。 stderrに
use strict;
use warnings;
my @l = qw(A B C);
print $l[-4];
出力(プログラムを実行し続けます):
Use of uninitialized value in print at ./x.pl line 7.
または:
my @l = qw(A B C);
print "undef" if !defined $l[-4];
出力:
undef
あなたはに値を割り当てる場合それはエラーを受け取ります:
my @l = qw(A B C);
$l[-4] = "d";
出力(プログラム終了):
Modification of non-creatable array value attempted, subscript -4 at ./x.pl line 7.
そして実際に間隔を変更することができます。だから、配列は、任意の値を開始することができないだけで0
my @l = qw(A B C);
$[ = -4; # !!! Deprecated
print $l[-4], "\n";
print $l[-3], "\n";
出力:
A
B
関連する問題
- 1. Cのポインターの配列の負のインデックス
- 2. 負の多次元配列インデックスjs
- 3. 負の配列インデックスと一見冗長なテンプレートの使用
- 4. シェイプ配列の負のインデックスとは何ですか? (Tensorflow)
- 5. 負の配列とエラーメッセージ
- 6. 負の文字列インデックス
- 7. perl - 大/ソート/配列で文字列のインデックスを検索する
- 8. 配列のサイズに負のインデックスをラップする
- 9. 配列の負のインデックスを持つ矛盾した結果
- 10. 負のX、Y線形配列インデックスの座標?
- 11. perlの配列
- 12. 配列と配列インデックス
- 13. リストのインデックスと配列のインデックスの差
- 14. Matlab配列のインデックスと補完インデックス
- 15. Perl配列のオーバーライド
- 16. perlのサフィックス配列?
- 17. 次と前の配列インデックス
- 18. 配列値の配列インデックス
- 19. Perlオブジェクト内の配列の配列
- 20. perlの配列内のオブジェクトごとに
- 21. Pythonの負のインデックス?
- 22. 負のリストのインデックス?
- 23. Perl:配列項目の削除と配列のサイズ変更
- 24. たPerl:配列
- 25. Perl配列ハッシュプリント
- 26. のPerl - インデックス
- 27. ハッシュperlの値の配列
- 28. Perlでの配列のハッシュ
- 29. Perl配列とハッシュへの追加
- 30. 負け接続:: SSH :: Perlの
テストそれを。これらのタイプの質問は、あなた自身を解決するために良いことです – chrsblck
なぜあなたはそれを試してみませんか? – marcadian
私はそれを試すことができますが、私はPerlで意味がある場合、私はメモリモデルを理解しようとしています。私は質問 – Cratylus