my @Variables = ( $Map_Request_Date,$Map_Due_Date,$Map_Cutover_Date,$Map_Complete_Date,$Map_Approved_Date); #### my($foo, $bar) = (1,2); my @vars = ($foo, $bar); foreach my $var (@vars) { $var += 4; } print "\@vars: @vars\n"; print "\$foo: $foo\n"; print "\$bar: $bar\n"; __END__ @vars: 5 6 $foo: 1 $bar: 2 #### my($foo, $bar) = (1,2); foreach my $var ($foo, $bar) { $var += 4; } print "\$foo: $foo\n"; print "\$bar: $bar\n"; __END__ $foo: 5 $bar: 6 #### my($foo, $bar) = (1,2); my @vars = \($foo, $bar); # note the backslash before the list # this would do the same: my @vars = (\$foo, \$bar); foreach my $var (@vars) { $$var += 4; # note the de-referencing $ before $var } print "\@vars: @vars\n"; print "\$foo: $foo\n"; print "\$bar: $bar\n"; __END__ @vars: SCALAR(0x15ae7a0) SCALAR(0x15ae830) $foo: 5 $bar: 6 #### { my %Months = (...); ... foreach $var (...) { ... } } # %Months not defined here anymore #### my %Months = (Dec => 12); my $date = 'Dec 1 2016 18:15'; my @pcs = split " ", $date; $date = sprintf "%02d %02d %d %s",$Months{$pcs[0]}, @pcs[1..3]; print "date: '$date'\n"; __END__ date: '12 01 2016 18:15'