When you declare %fields inside the scope of the
foreach $item (@pairs) loop with my, its
contents are private to that loop. Then you try to access
%fields after the loop, but it doesn't contain
anything since you're outside the closing bracket (scope)
of the for loop.