my ( $key, %data ); while ( ) { if ( /^([^:]+):/ ) { $data{ $key = $1 } = $_; } else { $data{ $key } .= $_; } } #### my ( $key, %data ); while ( ) { if ( /^([^:]+):/ ) { $data{ $key = $1 } = [ $_ ]; } else { push @{ $data{ $key } }, $_; } } #### my ( $key, @data ); while ( ) { if ( /^([^:]+):/ ) { push @data, [ $_ ]; } else { push @{ $data[ -1 ] }, $_; } } #### my ( $key, @data ); while ( ) { if ( /^([^:]+):/ ) { push @data, $_; } else { $data[ -1 ] .= $_; } }