perlop: fix documentation for s/// "false" return value
authorLukas Mai <l.mai@web.de>
Sun, 20 Aug 2017 19:12:17 +0000 (21:12 +0200)
committerLukas Mai <l.mai@web.de>
Sun, 20 Aug 2017 19:12:17 +0000 (21:12 +0200)
Commit a0d0e21ea6ea90a2231 ("perl-5.000") added perlop.pod, where s///
was described as returning 0 if no substitutions were made.

commit e37d713d85ec003d03d ("perl 5.003_01: pod/perlop.pod") then
"fixed" the documentation by saying it returns the empty string instead.
And that's how it's been since 1996.

What s/// actually returns on match failure is the canonical false
value, which is both "" and 0 at the same time (depending on
numeric/string context).

pod/perlop.pod

index d7c52be..410085f 100644 (file)
@@ -2066,7 +2066,8 @@ X<regexp, substitute> X</m> X</s> X</i> X</x> X</p> X</o> X</g> X</c> X</e> X</r
 
 Searches a string for a pattern, and if found, replaces that pattern
 with the replacement text and returns the number of substitutions
-made.  Otherwise it returns false (specifically, the empty string).
+made.  Otherwise it returns false (a value that is both an empty string (C<"">)
+and numeric zero (C<0>) as described in L</Relational Operators>).
 
 If the C</r> (non-destructive) option is used then it runs the
 substitution on a copy of the string and instead of returning the