in reply to Confusing Uninitialized warning

That snippet is perfectly fine. Your problem is somewhere else. Please post code that reproduces the problem. Something other than the following:
#!/usr/bin/perl -w use strict; test( FLOATER => 'N'); sub test { my %data = @_; warn $data{'FLOATER'}; print $data{'FLOATER'}."<-----------"; if( $data{'FLOATER'} eq 'Y' ){ print "Test: yes\n"; } } __OUTPUT__ N at test.pl line 8. N<-----------