in reply to Confusing Uninitialized warning

is that the _only_ warning given? What does print join ':', @_; show (so we can see what's in there)? Or may the context in which the sub is being called? This code works fine for me w/no warnings:
use strict; use warnings; my %data = ( FLOATER => 'N', BLAH=>2); warn $data{'FLOATER'}; print $data{'FLOATER'}."<-----------\n"; warn 'ok' if $data{'FLOATER'} eq 'Y';