Global symbol "$domain" requires explicit package name at test.pl line 113. Global symbol "$IP" requires explicit package name at test.pl line 113. Global symbol "$IP" requires explicit package name at test.pl line 114. Global symbol "$domain" requires explicit package name at test.pl line 115. BEGIN not safe after errors--compilation aborted at test.pl line 235 (#1) (F) You've said "use strict" or "use strict vars", which indicates that all variables must either be lexically scoped (using "my" or "state"), declared beforehand using "our", or explicitly qualified to say which package the global variable is in (using "::"). Uncaught exception from user code: Global symbol "$domain" requires explicit package name at test.pl line 1 13. Global symbol "$IP" requires explicit package name at test.pl line 113. Global symbol "$IP" requires explicit package name at test.pl line 114. Global symbol "$domain" requires explicit package name at test.pl line 115. BEGIN not safe after errors--compilation aborted at test.pl line 235. at test.pl line 235