2-3 minutes is far too much (unless you are running Perl in and old C=64)!
Probably one of the modules you are using is doing something more that just being compiled. For instance, resolving some hostnames, trying to stablish some connection with a remote server, etc.
How is your CPU load over that 2-3 minutes?. Compiling would use 100%. On the other hand, if it is doing nothing over a long period, use strace or a similar utility to monitor your script at the OS level and found what it is waiting for.
Finally, you can also use a divide and conquer approach to find the slow loading module, insert sentences like the ones below between the use calls:
BEGIN { $| = 1; printf "%d: Foo\n", time }
use Foo;
BEGIN { printf "%d: Bar\n", time }
use Bar;
BEGIN { printf "%d: all modules loaded\n", time }
|