This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Show that '/o' modifier no longer has adverse effects on 'split'.
authorHarald Jörg <Harald.Joerg@arcor.de>
Sun, 29 Oct 2017 13:41:59 +0000 (09:41 -0400)
committerJames E Keenan <jkeenan@cpan.org>
Sun, 29 Oct 2017 13:42:55 +0000 (09:42 -0400)
    The underlying problem was already fixed in
    3cb4cde3dd4d2af2f5065053905708bffa5168f9 (Jul 4 2017).  For clarity, adding
    test adapted from original poster in RT 132334.

    Add Harald Jörg to Perl AUTHORS.

AUTHORS
t/op/split.t

diff --git a/AUTHORS b/AUTHORS
index b3c81b0..c8cb683 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -486,6 +486,7 @@ Hans Dieter Pearcey         <hdp@pobox.com>
 Hans Ginzel                    <hans@kolej.mff.cuni.cz>
 Hans Mulder                    <hansmu@xs4all.nl>
 Hans Ranke                     <Hans.Ranke@ei.tum.de>
+Harald Jörg                   <Harald.Joerg@arcor.de>
 Harmen                         <harm@dds.nl>
 Harmon S. Nine                 <hnine@netarx.com>
 Harri Pasanen                  <harri.pasanen@trema.com>
index 038c5d7..b25d6cb 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     set_up_inc('../lib');
 }
 
-plan tests => 172;
+plan tests => 176;
 
 $FS = ':';
 
@@ -244,7 +244,7 @@ is($cnt, scalar(@ary));
 }
 
 {
-    # bug id 20000427.003 (#3173) 
+    # bug id 20000427.003 (#3173)
 
     use warnings;
     use strict;
@@ -651,3 +651,19 @@ is "@a", '1 2 3', 'assignment to split-to-array (stacked)';
 fresh_perl_is(<<'CODE', '', {}, "scalar split stack overflow");
 map{int"";split//.0>60for"0000000000000000"}split// for"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
 CODE
+
+# RT #132334: /o modifier no longer has side effects on split
+{
+    my @records = (
+        { separator => '0', effective => '',  text => 'ab' },
+        { separator => ';', effective => ';', text => 'a;b' },
+    );
+
+    for (@records) {
+        my ($separator, $effective, $text) = @$_{qw(separator effective text)};
+        $separator =~ s/0//o;
+        is($separator,$effective,"Going to split '$text' with '$separator'");
+        my @result = split($separator,$text);
+        ok(eq_array(\@result,['a','b']), "Resulting in ('a','b')");
+    }
+}