Yes, you would have a usage problem, as the package name would be passed to the function, which the function does not expect. Try this, it will become clear:
use p;
use strict;
p->abc;
package p;
use strict;
sub abc {
print "begin params\n";
print(join(",", @_), "\n");
print "end params\n";
}
1;