Perl楽しいから好き

Perlをはじめとしたプログラミング周りのあれこれについて。モダーンなPerlを楽しんでいます。

Perlでランダムで0から9の数字を出して、すべての数字が揃ったら終わるという処理を書いてみた。

プログラミングの地力を上げたいなぁと思い、数学パズルっぽいのをコードで解いています。棋力を上げるために詰将棋を解くようなノリです。ある問題を解くために「0から9の数字が全て出てきたら終了」という処理が欲しかったので書いてみました。

use strict;
use warnings;
use feature qw/say/;
use utf8;
use Data::Dumper;

# 0から9の配列を作って、出た数字を抜いていき、空になったら終わる作戦
my @array = qw(0 1 2 3 4 5 6 7 8 9);

my @temp_arr = @array;

my $count = 0;
while (@temp_arr) {
    my $random_one = int(rand 10);

    # 出た数字を確認
    say $random_one;

    # 出た数字を抜いていく
    @temp_arr = grep {$_ != $random_one} @temp_arr;

    # 配列の要素が減っていく様子を確認
    say Dumper @temp_arr;
    $count++;
}

# 何回ループしたかを確認
say "$count times Loop.";
say "Finish!";

Perlの文法だけじゃなくって、データ構造どうすれば解けるのか?ってところに思いを馳せれるようになってきてて、イイ感じ。