$/ = "\r\n\r\n"; open( UIEEFILE, '<', '/path/to/file.txt' ); while () { my %book = (); foreach my $line ( split( "\r\n", $_ ) ) { my ( $key, $value ) = split( /\|/, $line, 2 ); if ( defined( $book{$key} ) ) { $book{$key} .= " $value"; } else { $book{$key} = $value; } # do something with %book } }