in reply to default values for lists

Assuming I've not misintepreted your question, I'd lean towards a solution something like this:
my @defaults = qw/one two three four five/; my @a = qw/un deux trois/; $a[$_] ||= $defaults[$_] for (0 .. $#defaults); print "@a\n"; # prints "un deux trois four five"
Again, if you're looking for a completely either-or approach to the two lists, then the aforementioned trinary operator is probably the best choice. If you want to take from @a or @defaults on a per-element basis, then the trinary operator won't give you the desired results -- you'll need to use an approach like mine or RMGir's above.

blokhead