That should work fine. Put your hash def in a file "filename.pl" and then in your script file have the line
(This assumes that filename.pl and your script are in the current directory in which you are running the script.)
If the hash def is in a file "filename.pm", then you can have the line use filename; (This latter assumes that filename.pm is in the same directory as the script using it and that you are running the script in that directory and that the current directory is included in @INC.)
But read the docs on "use", "require" and also "do"; the latter may be more appropriate for what you want (and easier to manage.)
Oh, and there shouldn't be a limit on the size of the hash - till you run out of memory.
(Update: Looks like the problem was solved while I was responding.)