for文;

いつのまにか、

for(%hash){}

は%hashの中身を抜き出してしまうと思い込んでた。

そういえば、参照を出すだけですね。再確認...

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my %hash = (1=>"a",2=>"b",3=>"c",4=>"d");

for(%hash){}

print Dumper(%hash);

1;

output:

$VAR1 = '4';
$VAR2 = 'd';
$VAR3 = '1';
$VAR4 = 'a';
$VAR5 = '3';
$VAR6 = 'c';
$VAR7 = '2';
$VAR8 = 'b';