私は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. 配列値の配列インデックス
- 2. perlのサフィックス配列?
- 3. Perlオブジェクト内の配列の配列
- 4. 負のリストのインデックス?
- 5. MongoDBのC#の配列のインデックスまたはインデックス付け配列
- 6. Smartyの配列インデックス
- 7. Perl配列ハッシュプリント
- 8. インデックスの配列を持つアクセス配列
- 9. 配列の比較とインデックスの取得
- 10. ハッシュperlの値の配列
- 11. Perl:配列参照と匿名配列の比較
- 12. PHPの配列のインデックスに応じて配列のソート配列
- 13. 配列インデックス
- 14. 配列インデックス
- 15. のPerl - インデックス
- 16. 最初のインデックスとして配列プッシュ
- 17. ハッシュperlへの配列
- 18. 負け接続:: SSH :: Perlの
- 19. Rubyの配列なインデックス
- 20. 配列インデックスへのアクセス0、
- 21. PHPの再インデックス配列?
- 22. は、インデックス付きの配列
- 23. 配列インデックスの範囲外
- 24. リセットPHPの配列インデックス
- 25. PHP - 別のインデックス配列
- 26. PHPインデックス付きの配列
- 27. 配列 '__curl_rule_01__'のサイズが負である
- 28. 負の数で配列にアクセスする!
- 29. JqGridデータ配列インデックス
- 30. Cython numpy配列インデックス
テストそれを。これらのタイプの質問は、あなた自身を解決するために良いことです – chrsblck
なぜあなたはそれを試してみませんか? – marcadian
私はそれを試すことができますが、私はPerlで意味がある場合、私はメモリモデルを理解しようとしています。私は質問 – Cratylus