The import() method in Exporter class is executed at the compile-time by the use compiler directive. So, when the compiler sees use First qw(first_method) the Exporter class should look at EXPORT or EXPORT_OK of First and check for the method first_method. If it is not there in any of the EXPORT lists then it should throw an error. But it is not....