for my $interface(@infos){ my ($bez) = $interface =~ /^([^\n]+)/; my @data = $interface =~ /(pvc.*?cbr)/sg; for my $daten(@data){ my ($id,$ip,$cbr) = $pvc =~ /(\s*[\d\/]+).*?protocol ip ((?:\d{1,3}\.){3}\d{1,3}).*?cbr\s*(\d+)/s; push @{$hash{'ATM'.$bez}}, [split(/\//,$id),$ip,$cbr]; } } for my $atm(keys %hash){ print sprintf("%10s | %10s | %10s | %10s |%15s\n",$atm,'Daten1','Daten2','IP','cbr'); print sprintf("%10s | %10s | %10s | %10s |%15s\n",' ',@$_,'') for @{$hash{$atm}}; }