Always check the status of your open
calls! You'll spend less time debugging mysterious errors, I promise.
open (DHCPCMD, "dhcpcmd $DHCPserver enumclients $scope|") || die "Can't get DHCP information: $!";
instead of twodigit():
my $day = sprintf("%02d", localtime->mday);
I'm not sure what comparehashes() is doing, especially as you refer to $1
but don't appear to grab it from anywhere. Instead, I'd lc
() machine names when assigning them to %dhcphash and %dnshash and just use the eq
operator to compare them.
Finally, I like to check the return values of my close() calls. No pun intended. If something goes wrong here, I want to know about it.