On what had to be the hundredth time I look through the code, I realize that
my $var = shift;
isn't going to do anything if @_ isn't where the data in question is. In an effort to clarify what I was manipulating, I provided a named array to hold said data -- and bam, nothing was going into my hash now. This held me up for about a whole day.
Humility, thy name is simple errors.