use Data::Diver qw( DiveVal ); DiveVal($devstats //= {}, map \$_, @data[4..$#data]) = $value;