You've got plenty of Perl 5 answers, let me add a Perl 6 one:
pugs> my @nums = 1, 2, 4, 5, 0, 8;
pugs> grep { $_ }, 10 >>*<< @nums;
(10, 20, 40, 50, 80)
(I think that standard perl 6 would use 10 * << @nums instead, only the side where a dimension is folded gets the hyper op. But pugs is a bit out of date).
Likewise you can add or multiply arrays piecewise:
pugs> <1 2 3> »+« <0 1 0>
(1.0, 3.0, 3.0)
( » is an alias for >>, « an alias for <<)
And, very powerful as well, the reduce operator:
pugs> [+] <1 2 3>
6.0
|