[x@realserver ~]$ cat gen_links.pl #!/usr/bin/perl use File::Basename; use File::Find; use File::stat; use IO::File; #use Audio::Wav; #use Data::Types qw(:all); $archdir = "/home/x/phone/r20pw"; $ramurl = "http://realserver/ramgen/phone/r20pw"; $output = "/home/x/links400.shtml"; #$archdir = @ARGV[0]; #$ramurl = @ARGV[1]; #$output = @ARGV[2]; # my $wav = new Audio::Wav; $IDX = 'mtime'; *name = *File::Find::name; #@files = glob("$archdir/*.wav"); #@files = glob("$archdir/*.rm"); find(\&wanted, $archdir); @files = sort { $time{$b} <=> $time{$a} } keys %time; $fh = IO::File->new($output, "w") or die "Couldn't open $output for reading: $!\n"; $old_fh = select($fh); foreach $file (@files) { print "\n"; ($filename, $dir, $suffix) = fileparse($file, qr{\..*}); # $read = $wav -> read($file); # $length = to_whole($read -> length_seconds()); $filesize1 = -s $file; $length = $filesize1 / 2887; print "$filename.rm\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
 
\n"; print "\n"; print "\n"; } select($old_fh); $fh->close(); sub wanted { my $sb; /^.*\.rm\z/s && ($sb = stat($_)); # XXX: should be stat or lstat? return unless $sb; $time{$name} = $sb->$IDX(); # indirect method call }