常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte streamを読んで、自分が書くとしたらこんな感じかなーと思った。多重化して select 使う必要ないよねということで。 use Time::HiRes qw(sleep); sub sleep_sort { # create pipe pipe(my $rfh, my $wfh) or die "pipe failed: $!"; # spawn the processes my @pids; while (@_) { my $value = shift; my $pid = fork; die "fork failed: $!" unless defined $pid; if ($pid == 0) { # child process $| = 1; sleep $value