#!/usr/bin/perl use XML::DT ; my $filename = shift; my %format = ( wav => sub { my ($s,$t) = @_; `cp $s $t`; }, midi => sub { my ($s,$t) = @_; `timidity $s -Ow -o $t`; } ); $format{mid} = $format{midi}; my $track = 1; my $tracks = "cdrecord -v speed=2 dev=2,0 -audio "; %handler=( 'cd' => sub{},# 1 'track' => sub{ $track++; },# 2 'file' => sub{ my $file = $c; $file =~ s/^\s*(.*?)\s*$/$1/; $file =~ m!\.(\w+)!; if (exists($format{$1})) { &{$format{$1}}($file,"track$track.wav"); $tracks.="track$track.wav "; } else { die("Unknown format of file $file\n"); } },# 2 'title' => sub{"$q:$c"},# 3 ); dt($filename,%handler); print "Burn CD with command\n"; print $tracks; print "\n";