Re: the remaining bugs in \x escapes (was Re: [PATCH] oct and hex in glorious 64...
[p5sagit/p5-mst-13.2.git] / pod / perlfaq6.pod
index ed6c01b..9d9b48c 100644 (file)
@@ -115,7 +115,7 @@ Here's code that finds everything between START and END in a paragraph:
 
     undef $/;                  # read in whole file, not just one line or paragraph
     while ( <> ) {
-       while ( /START(.*?)END/sm ) { # /s makes . cross line boundaries
+       while ( /START(.*?)END/sgm ) { # /s makes . cross line boundaries
            print "$1\n";
        }
     }
@@ -212,6 +212,21 @@ This prints:
 
     this is a SUcCESS case
 
+As an alternative, to keep the case of the replacement word if it is
+longer than the original, you can use this code, by Jeff Pinyan:
+
+  sub preserve_case {
+    my ($from, $to) = @_;
+    my ($lf, $lt) = map length, @_;
+    
+    if ($lt < $lf) { $from = substr $from, 0, $lt }
+    else { $from .= substr $to, $lf }
+    
+    return uc $to | ($from ^ uc $from);
+  }
+
+This changes the sentence to "this is a SUcCess case."
+
 Just to show that C programmers can write C in any programming language,
 if you prefer a more C-like solution, the following script makes the
 substitution have the same case, letter by letter, as the original.
@@ -697,12 +712,8 @@ in L<perlre>.
 Copyright (c) 1997-1999 Tom Christiansen and Nathan Torkington.
 All rights reserved.
 
-When included as part of the Standard Version of Perl, or as part of
-its complete documentation whether printed or otherwise, this work
-may be distributed only under the terms of Perl's Artistic License.
-Any distribution of this file or derivatives thereof I<outside>
-of that package require that special arrangements be made with
-copyright holder.
+This documentation is free; you can redistribute it and/or modify it
+under the same terms as Perl itself.
 
 Irrespective of its distribution, all code examples in this file
 are hereby placed into the public domain.  You are permitted and