sub unfoldauthors4 { my ($authors) = @_; my @all = @{$authors}; my @res; while (@all) { push @res, shift( @all) . ", ". shift( @all) . "; " . join(" ", map {$_->{name}} @{ shift( @all )}); } return \@res; }