#!/usr/bin/perl use warnings; use strict; use Perl6::Slurp; my @lines = slurp 'lists.php'; my %seen; while (@lines >= 2) { if ($lines[0] =~ m!^
  • \1
    (.*)$!) { my ($group, $desc) = ($1, $2); if ($lines[1] =~ m!^
    ([^<]+)
    $!) { my ($group1, $list) = ($1, $2); die "group $group followed by $group1" if $group ne $group1; $seen{$group}++ && die "group $group seen twice\n"; print "$group\t$list\t$desc\n"; } } shift @lines; }