It would be pretty unusual to have a file name that ends with \n, so I see that as an edge case that's probably not worth worrying about.
It's probably better to have a check after the call to RRDs::info, so I've inserted:
my $info = RRDs::info "$logsdir/$rrd";
# Check to ensure we actually have a valid rrd file
unless ($info->{filename}) {
print qq|"$logsdir/$rrd" doesn't appear to be a valid rrd log,
+ skipping\n|;
next;
}
Which does the trick...
$ touch foo.rrd
$ ./rrd-resize.pl
Starting, found 1 rrd files
Processing foo.rrd
"./foo.rrd" doesn't appear to be a valid rrd log, skipping
Finished, processed 1 files in 0.00 seconds