#! /usr/bin/perl
use strict;
use warnings;
my %hash;
while(my $line = <DATA>){
my %inner_hash;
foreach my $item(split(/,/,$line)){
my ($key,$val) = split(/=/,$item);
$key =~ s/[^\w]//g;
$val =~ s/[^\w&]//g;
$inner_hash{$key} = $val;
}
push(@{$hash{$inner_hash{URSPRUNG}}},\%inner_hash);
}
foreach my $key(keys(%hash)){
foreach my $elem(@{$hash{$key}}){
my ($base,@vols) = split(/&/,$elem->{VOL});
foreach(@vols){
print $key," ",$elem->{CODE}," ",$base.$_,"\n";
}
print $key," ",$elem->{CODE}," ",$base,"\n" unless(@vols);
}
}
# _ _DATA_ _ ohne Leerzeichen!!
_ _DATA_ _
:URSPRUNG=123,CODE=320317440,VOL=0&1&2&3&4&5&6&7&8&9!
:URSPRUNG=123,CODE=3203177290,VOL=0&1&2&3&4&5&6&7&8&9!
:URSPRUNG=123,CODE=320317770,VOL=0&1&2&3&4&5&6&7&8&9!
:URSPRUNG=123,CODE=32021883,VOL=3&4&5!
:URSPRUNG=123,CODE=4203204,VOL=4&5&6&7!
:URSPRUNG=125,CODE=32021883,VOL=3&4&5!
:URSPRUNG=125,CODE=4203204,VOL=4&5&6&7!
:URSPRUNG=124,CODE=32021883,VOL=3&4&5!
:URSPRUNG=124,CODE=4203204,VOL=164564&5&6&7!
:URSPRUNG=124,CODE=4203206,VOL=124&5&6!