Well, here's an SSCCE showing chained packages, one of which is an Exporter, the other not. Compare and contrast.
#!/usr/bin/env perl
use strict;
use warnings;
package pm::security;
use Exporter;
our @ISA = ('Exporter');
our @EXPORT = ('banned');
sub banned {
print "Banned: @_\n";
}
1;
package user;
pm::security->import; # If in separate files, "use pm::security;" will
+ do.
sub do_stuff {
# We call banned without its package prepended because banned is
# exported by package pm::security
banned (@_);
}
1;
package main;
# If in separate files, "use user;" here
# We call do_stuff with its package prepended because do_stuff is not
# exported by package user.
user::do_stuff ('foo', 'bar');
If your packages behave differently then you'll have to provide a similar SSCCE displaying the precise problem in order for others to help you get to the bottom of it.