http://www.perlmonks.org?node_id=582141


in reply to Please explain 'list' assignment.

Because list assignments are parallel. A list of three items on the left expects three items on the right. Since there's only one, $var2 and $var3 remain undefined.

You can do what you want with:

my ($var1, $var2, $var3) = "Hello" x 3;

Update: Oops - I read your question slightly wrong. To assign the same value three times, use

my ($var1, $var2, $var3) = map "Hello", 1..3;
or
my ($var1, $var2, $var3) = ("Hello") x 3;
(thanks Sidhekin)