User:Nsh/Sort-songs-script

my $infile = "/tmp/songs"; ## infile is wiki text from page: en.wikipedia.org/wiki/Wikipedia:Sound/list open(IN,"<$infile"); $text = join("\n",); close IN; # read into one scalar my $header = $& if $text =~ s/^.*?\n\|\-\s*\n//s; # remove header my $footer = $& if $text =~ s/\|\}\W*?$//s; # remove footer my @entries = split(m#\n\|\-\s*\n#, $text); # split into each table entry for (@entries) { my @lines = split(m#\n\|#, $_); # split into each line my $comp = $lines[2]; $comp = $1 if $lines[2] =~ m#\[\[(.+?)\]\]#s; # remove   from composer name push @{$composers{$comp}}, $_; # push this entry into the composers array } print $header; print join "\n|-\n", @{$composers{$_}} for sort keys %composers; # perl magick! print $footer;