CDに収まる曲をランダムに選ぶカレントディレクトリにあるwavファイルからランダムにCDに収録されるファイルのリストを出力するスクリプト #! /usr/bin/perl opendir( DH, "." ) || die 1; @f = grep( /.wav/i, readdir( DH )); close( DH ); $total_size = 0; $marked = 0; my @mark; $cap = 650 * 1000 * 1000; #$cap = 10 * 1024; @rlist = (); foreach (@f) { my $r = int rand (@rlist + 1); push(@rlist, $rlist[$r]); $rlist[$r] = $_; } foreach $fname ( @rlist ) { $size = -s $fname; # printf STDERR "$total_size $fname $size\n"; if( -d $fname ){ next; } if( $total_size + $size < $cap ){ push @list, $fname; $total_size += $size; } } { $" = "\n"; print "@list";} |