There is no built-in limit in the language. It is limited only by the
amount of memory your computer system has available.
And how willing you are to let your machine go to a crawl if you
exceed the available physical RAM.
Oses these days aren't limited by RAM. They'll allocate disk as swap
space, which frees RAM to hold more, which then gives Perl the go-
ahead to load more data, which then gets swapped back out to disk.
Disk is slower than RAM so the machine will go to a crawl.
And, unfortunately, there are some things that are easy to do in Perl
that can put you in that situation, like slurping big data files
without checking to see how big they are first or trying to hold huge
structures in memory instead of reverting to using a database.
Back to the original poster's question -
Knowing that Perl will create an array big enough to fill memory
should prompt more specific questions, like "how many array entries
can I effectively access if they are of type X?", and "Is there a
better way to store and access data type Y?" and let us know what
you're going to store or access or try to do with it.
"How big" is too generic and leads to generic answers that don't
really help you.