リストをランダムに並び替えるPerlスクリプト
を作ると何かリスト(かんたんなクイズなど)を並べ替えて問題集とかが作れるかも、と思って久しぶりにPerlでスクリプトを書いてみた。
これで適当に複数のファイルに問題を記述しておいてglobでファイルの一覧を取ってくれば、簡単な問題集ができる。前にも似たようなことをやったような気もするけど。
#!/usr/bin/env perl -w # test.pl # -*- Mode: Perl; coding: shift_jis -*- # for Perl 5 or later only (maybe). # # # # use strict; use warnings 'all'; my $max = 200; my @array; my %hash; my @newarray; for (0 .. $max) { my $string = sprintf("%03d", $_); push(@array, $string); } for my $element (@array) { my $number = rand($max); # てきとうに数字をとる while (defined $hash{$number}) { $number = rand($max); } $hash{$number} = $element; } for my $hashkey (sort { $a <=> $b } keys %hash) { # printf("%10f -> %03d\n", $hashkey, $hash{$hashkey}); push(@newarray, $hash{$hashkey}); } # test.pl ends here.