оригинал далеко ушел, вот и решил опять написать.
open(LOG,"/var/state/dhcp/dhcpd.leases") or die $!;
while(<LOG>) { chomp;
if ( /^lease/ ) { $ip = (split( / /, $_))[1] ;} if ( /^ starts/ ) { $starts = (split( / /, $_))[4] ;} if ( /^ ends/ ) { $ends = (split( / /, $_))[4] ;} if ( /^ hardware ethernet/ ) { $mac = (split( / /, $_))[4] ;} if ( /^ client-hostname/ ) { $name = (split( / /, $_))[3] ;}
print "$ip $starts $ends $mac $name\n"; } close(LOG);
почему-то он по несколько раз (раз по 12) выводит одну и ту же строку, причем только в первых двух строчках правельное совпадение полей, а в остальных случаях берет с соседних полей лога или мак или айпишку. Вообще запутался:(