#!/usr/bin/perl use MP3::Info; my (%t, %m, $f, $i); for $f (@ARGV) { $i = get_mp3tag($f); $t{$f} = $$i{TRACKNUM} || 'ndef'; # tag track num $m{$f} = (stat($f))[9]; # mtime } ## try track order, fall-back to mtime. for (sort { $t{$a} != $t{$b} ? $t{$a} <=> $t{$b} : $m{$a} <=> $m{$b} }keys %t) { #print "$_ $t{$_} $m{$_}\n"; print "$_\n"; }