http://qs321.pair.com?node_id=664083


in reply to Re: "42" ~~ "42.0" is false in 5.10
in thread "42" ~~ "42.0" is false in 5.10

Hi,

To me it looks right:

If it looks like a string, it will be treated as string.

Here's a small programm to test the new ~~ Operator.

use strict; use warnings; use 5.010; ## No quotes &test_smartmatch(42, 42); # yields 42 smartmatches 42 &test_smartmatch(42,42.0); # yields 42 smartmatches 42 ## Single Quotes &test_smartmatch(42,'42.0'); # yields 42 smartmatches 42.0 &test_smartmatch('42','42.0'); # yields 42 doesn't smartmatch 42.0 ## Double Quotes &test_smartmatch("42","42.0"); # yields 42 doesn't smartmatch 42.0 ########################################################### sub test_smartmatch { my $lhs = shift @_; # Left Hand Side (LHS) my $rhs = shift @_; # Right Hand Side (RHS) if ( $lhs ~~ $rhs ) { say "$lhs smartmatches $rhs"; } else { say "$lhs doesn't smartmatch $rhs"; } } ## ########################################################### __END__

Just my 2 cents.

Hope this helps.