sub reportWA{ # $key my $key = shift; my $NewWA; unshift @{ $WA{ $key }{ stags } }, $WA{$key}{PT}; #............^ $NewWA = $WA{ $key }{ PT }; $#{ @{ WA{ $key }{ stags } } } = $rnds-1; #........^ ......missing $ for my $i (1..$rnds-1){ ${ WA{ $key }{ stags } }[ $i ] *= $wght; #......^...missing $ $NewWA += ${ WA{ $key }{ stags } }[ $i ]; #................^..........missing $ } #plog sprintf "stages = %s" ,join (", ",@stags); $NewWA /= $rnds; printf " %d %d %8.2f %s\n" , $key, $WA{ $key }{ PE }, $NewWA, join( ", ", @{ WA{ $key }{ stags } } ); #.............................^......missing $ }