これが最後の文で、「キー」とは何をするのか。また
#!usr/bin/perl
%vvv = (1,2,3,4,5,6);
$#vvv--;
%vvv = reverse %vvv;
print keys %vvv, "\n";
「642」いくつかの私には神秘的な理由の出力のことを、スクリプト全体のですか?御時間ありがとうございます。急いで私は研究をするための適切な時間がありません。だから私は再びあなたに感謝します。
これが最後の文で、「キー」とは何をするのか。また
#!usr/bin/perl
%vvv = (1,2,3,4,5,6);
$#vvv--;
%vvv = reverse %vvv;
print keys %vvv, "\n";
「642」いくつかの私には神秘的な理由の出力のことを、スクリプト全体のですか?御時間ありがとうございます。急いで私は研究をするための適切な時間がありません。だから私は再びあなたに感謝します。
$#vvv--コメントのようです。何が起きているのかは、偶数番号の要素配列であるハッシュがちょうど逆であることです。キーが印刷されたときに、それは642をつかむ、またはハッシュの新しい、現在のキー
%vvv = (
6 => 5,
4 => 3,
2 => 1
);
:に
%vvv = (
1 => 2,
3 => 4,
5 => 6
);
:だから、から行きます。
Global symbol "@vvv" requires explicit package name at ...
$#vvv
が配列@vvv
の最大インデックス、いないを参照していることを意味します
あなたはいつもあなたが持っていた場合は
use strict;
use warnings;
でスクリプトを実行する必要がありますが、あなたはエラーに気づいているだろうハッシュperlでは、@vvv
と%vvv
は2つの別々の変数です。したがって@vvv
は%vvv
とは関係がありません。その操作は一切使用されません。しかし
my @array = 1 .. 6; # 1,2,3,4,5,6 but written as a range
$#array--; # lower maximum index by 1
print "@array"; # prints "1 2 3 4 5"
、願いハッシュが動作しません。コードはの考えているかもしれない書いた人は、配列を切り捨てるための方法です何
。
Friarが説明したように、reverse
は、ハッシュキーと値をスワップする方法です。文字列に使用すると、文字列を逆にします。 "foobar" - > "raboof"ですが、リスト上で使用すると逆転するので、1,2,3,4,5,6
は6,5,4,3,2,1
になります。
'$#vvv'はコメントではありませんが、ハッシュには影響しません。 –
あなたと訂正のためのシナンのおかげで。私は#を見てすぐにコメントを考えた。私の間違い! – MadFriarAvelyn
あなたの答えをありがとう。実際に私はちょうどコメントのような行を削除し、同じ結果を得た。しかし、配列には非常によく似た問題があります。同じ行を削除すると、出力が異なります。コードは次の通りです。 '#!usr/bin/perl @vvv =(1,2,3,4,5,6,7); $#vvv--; print $ vvv [$#vvv]、 "\ n"; ' – boogie