Actually, it probably doesn't save any memory either.
The size of a scalar has a minimum overhead. Anything below about 20 characters (guess) in length requires the same amount of memory, so the fact that the integers appear smaller than the string will have negligable savings.
Worse, doing it my way requires a (short lived) second array (list) to be built, which will consume almost as much memory as the original array, thereby doubling the consumption breifly.
Overall, your method is probably better for the reasons of simplified maintanence. The only change I would make to yours is that I would use the x operator in the initialisation rather than iterated pushes.
my @mirrors = (
('http://foo.mirror.org') x 3,
('http://www.users-domain.com/proj/foo') x 2,
('http://osdn.dl.sf.net/sourceforge/foo') x 3,
('http://unc.dl.sf.net/sourceforge/foo') x 4,
('http://umn.dl.sf.net/sourceforge/foo') x 4,
('http://heanet.dl.sf.net/sourceforge/foo') x 5,
('http://aleron.dl.sf.net/sourceforge/foo') x 5,
);
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
|