                On-line Guides All Guides eBook Store iOS / Android Linux for Beginners Office Productivity Linux Installation Linux Security Linux Utilities Linux Virtualization Linux Kernel System/Network Admin Programming Scripting Languages Development Tools Web Development GUI Toolkits/Desktop Databases Mail Systems openSolaris Eclipse Documentation Techotopia.com Virtuatopia.com Answertopia.com How To Guides Virtualization General System Admin Linux Security Linux Filesystems Web Servers Graphics & Desktop PC Hardware Windows Problem Solutions Privacy Policy  [ < ] [ > ] [ << ] [ Up ] [ >> ] [Top] [Contents] [Index] [ ? ]

### 2.4.2 Comparison Operators

Comparing two scalars is quite easy in Perl. The numeric comparison operators that you would find in C, C++, or Java are available. However, since Perl does automatic conversion between strings and numbers for you, you must differentiate for Perl between numeric and string comparison. For example, the scalars `"532"` and `"5"` could be compared two different ways--based on numeric value or ASCII string value.

The following table shows the various comparison operators and what they do. Note that in Perl `""`, `0` and `undef` are false and anything else as true. (This is an over-simplified definition of true and false in Perl. See section 4.2 A Digression--Truth Values, for a complete definition.)

The table below assumes you are executing `\$left <OP> \$right`, where `<OP>` is the operator in question.

String Version`lt``le``gt``ge``eq``ne``cmp`
 Operation Numeric Version Returns less than `<` 1 iff. `\$left` is less than `\$right` less than or equal to `<=` 1 iff. `\$left` is less than or equal to `\$right` greater than `>` 1 iff. `\$left` is greater than `\$right` greater than or equal to `>=` 1 iff. `\$left` is greater than or equal to `\$right` equal to `==` 1 iff. `\$left` is the same as `\$right` not equal to `!=` 1 iff. `\$left` is not the same as `\$right` compare `<=>` -1 iff. `\$left` is less than `\$right`, 0 iff. `\$left` is equal to `\$right` 1 iff. `\$left` is greater than `\$right`
[an error occurred while processing this directive][an error occurred while processing this directive]

Here are a few examples using these operators.

```use strict;
my \$a = 5; my \$b = 500;
\$a < \$b;                 # evaluates to 1
\$a >= \$b;                # evaluates to ""
\$a <=> \$b;               # evaluates to -1
my \$c = "hello"; my \$d = "there";
\$d cmp \$c;               # evaluates to 1
\$d ge  \$c;               # evaluates to 1
\$c cmp "hello";          # evaluates to ""
``` Published under the terms of the GNU General Public License Design by Interspire