#!/usr/bin/perl use warnings; use strict; my @data; open(FH,") { chomp $line; my @array = (split(/;/,$line)); $array[-1] =~ tr/0xa0 //; $array[-1] /= 1024; if ($line =~/\bBLUBB|SAND?\b/ and $line !~/\bMUSCHEL\b/){ push(@data,[@array]); } # if } # while close (FH); my $format = ''; for my $i(0..scalar(@{$data[0]})-1){ my $max = find_longest(map{$_->[$i]}@data); $format .= '%-'.$max.'s '; } for my $entry(@data){ print sprintf($format . " ",@$entry); } open(OUTDATEN,">ZIEL.txt") or die $!; for my $entry(@data){ print OUTDATEN join(';',@$entry),"50"," "; } close (OUTDATEN) or die $!; sub find_longest{ my $longest = 0; for(@_){ my $length = length($_); $longest = $length if($length > $longest); } return $longest; }