use strict; use warnings; my ($w, $x, $y, $z)=(undef,undef,7,7); if ( equal( $x, $y ) ) { print "Equal\n"; } else { print "Not equal\n"; } if ( equal( $w, $x ) ) { print "Equal\n"; } else { print "Not equal\n"; } if ( equal( $y, $z ) ) { print "Equal\n"; } else { print "Not equal\n"; } sub equal { my ( $first, $second ) = @_; local $^W; # < 5.6 no warnings; # >= 5.6 return $first == $second; }