use strict; use warnings; use Data::Dumper; sub a{ return(undef, undef); } my($x, $y); if(($x, $y) = a() ){ print "OK1\n"; } if((undef, undef) = a() ){ print "OK2\n"; } if(a()){ print "OK3\n"; } if(undef, undef){ print "OK4\n"; } #### OK1 OK2