in reply to uninitialized value in array dereference

It's impossible to say from the warning messages what the problem is, since it's occuring inside some anonymous eval statement. However, you can set up a handler for warnings that will print out a stack trace, showing where in the code this particular eval can be found, and the path your program took to get to it.
$SIG{__WARN__} = sub { warn @_; my $i = 0; while (my($pkg, $file, $line) = caller($i++)) { warn " package $pkg, file $file, line $line\n"; } };