use The::People qw (OverEighteens); require Political::Party qw (Conservative, Labour, Liberals); our @electorate = The::People::OverEighteens; our $government = new Labour; our %services = qw (hospitals transport environment education); my $treasury; foreach my $taxpayer (@electorate) { $treasury += $taxpayer->collect_taxes; } while (($treasury->solvent) && (! $government->end_of_term())) { $treasury->spend (\%services); } $government->hold_election; #Done