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.