mapを使わずに分かりやすく書き換えるとこんな感じでしょう。
perl
1my @chars_in_password;
2for my $i (1..8){
3 my @chars = ("a".."z", 0..9);
4 my $c = $chars[rand 36];
5 push(@chars_in_password, $c);
6}
7my $password = join("", @chars_in_password);
1 .. 8 はどの配列に格納されているのでしょうか。
mapのなかで要素が一つづつ$_に代入されます。
randが[]で括られている理由
$x[0]
が、リスト@x
の0番目の要素を参照しているのは理解できますか? この0
の部分は定数に限らず任意の式を書くことが出来、$x[rand 36]
のように書くことが出来ます。
さらに、名前のついた配列ではなく、(1,2,3)
とか('a','b','c')
とかqw/a b c/
とか直接的にリストを表現することも出来ます。これを組み合わせると例題のようなコードになります。
いまから Perl の学習をするなんて、大変ですね…
検索するとオワコンだ何だといい加減な主張をしている人が結構居ますが、まだまだ立派に現役の言語です。勉強した分だけ確実に出来ることが増えるので頑張って勉強してください。