#!/usr/bin/perl use warnings; use strict; my @data; open(FH,") {               chomp $line;               my @array = (split(/[\t\s\\]/,$line));   foreach (@array) {     s/^\s+/;/g;                         s/\s+$/;/g;           } # foreach 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 . " \n",@$entry); } open(FH,"ZIELneu.txt") or die $!;  while (defined (my $line = <$in>)) {  my @array = (split /[\t\s\\]+/, $line)[0..7];  my $x = pop @array;  if ($x =~ /\./) {     pop @array;     my $y = pop @array;     $array[-1] .= $y;  } else {     pop @array;     pop @array;  }  $array[-1] = sprintf('%.3f', $array[-1] / 1024);  print OUTDATEN join(';', @array), ":50\n"; } close (OUTDATEN) or die $!; close (FH) or die $!; sub find_longest{                           my $longest = 0; for(@_){     my $length = length($_);     $longest = $length if($length > $longest); } return $longest; }