Search code examples
perlstring-comparison

How do I compare two strings in Perl?


How do I compare two strings in Perl?

I am learning Perl, I had this basic question looked it up here on StackOverflow and found no good answer so I thought I would ask.


Solution

  • See perldoc perlop. Use lt, gt, eq, ne, and cmp as appropriate for string comparisons:

    Binary eq returns true if the left argument is stringwise equal to the right argument.

    Binary ne returns true if the left argument is stringwise not equal to the right argument.

    Binary cmp returns -1, 0, or 1 depending on whether the left argument is stringwise less than, equal to, or greater than the right argument.

    Binary ~~ does a smartmatch between its arguments. ...

    lt, le, ge, gt and cmp use the collation (sort) order specified by the current locale if a legacy use locale (but not use locale ':not_characters') is in effect. See perllocale. Do not mix these with Unicode, only with legacy binary encodings. The standard Unicode::Collate and Unicode::Collate::Locale modules offer much more powerful solutions to collation issues.