my ($mode, @towns) = $string =~  /^(EXPRESS) # oder was auch immer  \s+       # ein oder mehrere leerzeichen  (         # beginne zu speichern    [^;]+;?) # speichere bis zum naechsten;             # wenn es nicht gefunden wird, dann bis zum             # ende des strings  )+        # ende des speichern, wiederholen  $  /x; my %hash = (); if (scalar (@towns)) {  for my $i (0..$#towns) {    $hash{$mode . "_". $i+1} = $towns[$i];  } # for } # if