While it appears that the OP needs to learn more about references to use multidimensional arrays, he raises a good question about iterating over multidimensional or other complex data structures.
I'll just briefly put in a plug for Brad Bowman's excellent module,
Data::Rmap, which offers several ways to accomplish this.
In this instance:
use Data::Rmap;
@days=qw(mon tues wed thurs fri sat sun);
@cols=qw(red orange yellow green blue indigo violet);
@vars = (\@days, \@cols);
rmap {s/e/E/g} @vars;
print Dumper(\@vars);
--
$VAR1 = [
[
'mon',
'tuEs',
'wEd',
'thurs',
'fri',
'sat',
'sun'
],
[
'rEd',
'orangE',
'yEllow',
'grEEn',
'bluE',
'indigo',
'violEt'
]
];