use strict; use IO::File; use File::stat; my $fh = new IO::File 'radius.log', O_RDONLY or die $!; my $st = stat($fh) or die $!; my $len = $st->[7]; my $feld1; my $feld2; my $switch; my $feld4; my $feld5; my $feld6; my $mac; my $data; read $fh, $data, $len; my @lines = split /\n/, $data; foreach my $line(@lines){ $line =~ /^(\w+\s+\w+\s+\d+\s+\d{2}:\d{2}:\d{2}\s+\d{4})\s+:\s+(\w+):(.*):\s+\[(.*)\]\s+\((.*)\)$/; #printf "Date => %s, Auth => $2, Mesg => $3, MAC/X => $4, Client => $5\n", $1, $2, $3, $4, $5; ($feld1,$feld2,$switch,$feld4,$feld5,$feld6,$mac)= split(/\s+/,$5); #Trennung durch Whitespace print "$switch\n"; #Gibt alle Switch-Namen untereinander aus }