foreach $Title (keys %{$HASH}) { my $abstract = shift @{$HASH->{$Title}}; my $procedure = pop @{$HASH->{$Title}}; print $OUT "$Title\n", "$abstract\n", (map { "$_\n" }@{$HASH->{$Title}}), "$procedure\n"; }