Я давно забил на Net::ARP, не помню почему, но он кривой какой-то
юзаю свою ф-ю, если надо где-то в модуле получить мак.
use constant MAC_UNKNOWN => 'unknown';
sub get_arp{
my($if,$ip)=@_;
$if && $ip or return MAC_UNKNOWN;
open(ARP,"-|","/sbin/arp -ani $if $ip") or return MAC_UNKNOWN;
read(ARP,my $ARP,8192);
close ARP;
$ARP=~/(([0-9a-f]{1,2}:){5}([0-9a-f]){1,2})/i or return MAC_UNKNOWN;
return $1;
}