#!/usr/bin/perl use warnings; use strict; my @data; my $file = 'mailbox.txt'; open(my $fh,'<',$file) or die $!; while(my $line = <$fh>) { # alles was unten in __DATA__ steht symbolisiert eine Datei chomp $line; my @array = (split(/\s+/,$line))[0..2]; foreach (@array) { s%^\s+%%g; # fuehrende und s%\s+$%%g; # abschliessende Blanks entfernen } # foreach push(@data,[@array]); } # while close $fh; my $len_vorname = find_longest(map{$_->[0]}@data); my $len_nachname = find_longest(map{$_->[1]}@data); my $len_domain = find_longest(map{$_->[2]}@data); for my $entry(@data){ print sprintf("%-*s %-*s %-*s<<\n",$len_vorname,$entry->[0], $len_nachname,$entry->[1], $len_domain,$entry->[2]); } sub find_longest{ my $longest = 0; for(@_){ my $length = length($_); $longest = $length if($length > $longest); } return $longest; }