That is because it never gets to your print "EXIT VALUE.. line when there is a non 0 exit on the conf.pl script. You explicitly tell it to die and spit out the unprocessed error held in $?.
What do you think this line does?
system(@args) == 0 or die "system @args failed: $?";