#!/usr/bin/perl use strict; use warnings; use feature qw/say/; my %parsed = (); while() { chomp; my ($key, $values) = split "=", $_, 2; my @values = split ",", $values; $parsed{$key} = \@values; } foreach my $key (sort keys %parsed) { say "$key: "; foreach my $value (@{ $parsed{$key} }) { say "\t$value"; } } __DATA__ key1=value1 key2=value2,value3,value4,value4,value5,value6,value7,value8,value9,value10 key3=value11,value12