papioko has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks Today when a try to run some of my work code on perl 5.20 (before that i used 5.18) i encountered a strange behavior that i can't understand. The Sample code is:
#!/usr/bin/env perl use strict; use warnings; use List::Util qw{ first }; my %hash = ( ASD => 1, ZXC => 2, QWE => 3, TYU => 4 ); my $val = "qwe"; if(my $res = first { lc $_ eq $val } keys %hash) { print "Found: $res\n"; } else { print "Not found\n"; };
On perl version prior 5.20 result will be "Found: QWE" (as i expected), but when i run this code on perl 5.20 and beyound, result will be "Found: qwe". What is that ? Bug? Or i missed something ?