Вы можете установить Devel :: Size , чтобы узнать объем памяти, занятый любой конструкцией в Perl. Однако имейте в виду, что это займет большой объем промежуточной памяти, поэтому я не буду использовать ее для большой структуры данных. Я бы, конечно, не сделал бы этого, если бы вы думали, что вам может не хватить памяти.
Кстати, на CPAN есть несколько хороших модулей для кеширования в памяти и в других случаях. Вместо того, чтобы бросать свои собственные, я бы предложил использовать один из них. Например, попробуйте Tie :: Cache :: LRU для кэша в памяти, который будет использовать только указанное количество ключей.