-
StackOverflow 文件
-
Perl Language 教程
-
隨機性
-
隨機訪問陣列元素
my @letters = ( 'a' .. 'z' ); # English ascii-bet
print $letters[ rand @letters ] for 1 .. 5; # prints 5 letters at random
這個怎麼運作
rand EXPR
期望標量值,因此 @letters
在標量上下文中進行評估
- 標量上下文中的陣列返回它包含的元素數(在本例中為 26)
rand 26
在區間 0 ≤ VALUE < 26
中返回一個隨機小數。 (它永遠不會是 26
)
- 陣列索引總是整數,所以
$letters[rand @letters]
≡$letters[int rand @letters]
- Perl 陣列是零索引的,因此
$array[rand @array]
返回 $array[0]
,$array[$#array]
或其間的元素
(同樣的原則適用於雜湊)
my %colors = ( red => 0xFF0000,
green => 0x00FF00,
blue => 0x0000FF,
);
print ( values %colors )[rand keys %colors];