0
#! /usr/bin/perl

$var1 = 20;
$var2 = 15;

print ("var1 = ", $var1, "\n");
print ("var2 = ", $var2, "\n");

# Comparing numbers
print ("var1 == var2 : ", ($var1 == $var2), "\n");
print ("var1 != var2 : ", ($var1 != $var2), "\n");
print ("var1 < var2 : ", ($var1 < $var2), "\n");
print ("var1 <= var2 : ", ($var1 <= $var2), "\n");
print ("var1 > var2 : ", ($var1 > $var2), "\n");
print ("var1 >= var2 : ", ($var1 >= $var2), "\n");
print ("var1 >= var2 : ", ($var1 <=> $var2), "\n");

When ran above program, I am getting following output.

$ ./comparisonOperators 
var1 = 20
var2 = 15
var1 == var2 : 
var1 != var2 : 1
var1 < var2 : 
var1 <= var2 : 
var1 > var2 : 1
var1 >= var2 : 1
var1 >= var2 : 1

My question, why I am not getting any result for var1 == var2, var1 < var2, var1 <= var2, and why comparison operators returning 1 instead of True/False.

Hari Krishna
  • 3,658
  • 1
  • 36
  • 57
  • The accepted answer on the question I used to close this is correct, but [ikegami's answer further down](http://stackoverflow.com/a/5655485/1331451) is more complete. – simbabque May 17 '16 at 09:15
  • Also - a 'false' result of the test here, is returning a `dualvar (0,'')`. So if you'd tried to numify it: `print 0+ ( $var1 == $var2 ),"\n"` you'd have got a different result. – Sobrique May 17 '16 at 10:08

0 Answers0