Skip Menu |
Report information
Id: 128302
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: smylers [at] stripey.com
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



Subject: split docs don't mention pattern modifiers
From: Smylers [...] stripey.com
Date: Tue, 31 May 2016 17:06:37 +0100 (BST)
To: perlbug [...] perl.org
CC: Smylers [...] stripey.com
Download (untitled) / with headers
text/plain 3.2k
This is a bug report for perl from Smylers@stripey.com, generated with the help of perlbug 1.40 running under perl 5.25.2. ----------------------------------------------------------------- perldoc -f split doesn't state that split /PATTERN/ can use pattern modifier flags, but it seems that it can: ./perl -Ilib -E 'say foreach split /a b # c/, q[0aB1a b # c2a B # c 3]' 0aB1 2a B # c 3 ./perl -Ilib -E 'say foreach split /a b # c/ix, q[0aB1a b # c2a B # c 3]' 0 1a b # c2a B # c 3 This should be included in split's documention. Are all the qr/PATTERN/ flags also valid on split? (With the already documented exception that /^/ implies /^/m anyway.) ----------------------------------------------------------------- --- Flags: category=docs severity=low --- Site configuration information for perl 5.25.2: Configured by smylers at Tue May 31 13:40:14 BST 2016. Summary of my perl5 (revision 5 version 25 subversion 2) configuration: Commit id: bdc905d035d4f835a808f1825dad9a8cd726d1ec Platform: osname=linux, osvers=3.13.0-85-generic, archname=x86_64-linux uname='linux fozzie 3.13.0-85-generic #129-ubuntu smp thu mar 17 20:50:15 utc 2016 x86_64 x86_64 x86_64 gnulinux ' config_args='-des -Dusedevel' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' ccversion='', gccversion='4.8.4', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc libc=libc-2.19.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.19' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector' --- @INC for perl 5.25.2: lib /usr/local/lib/perl5/site_perl/5.25.2/x86_64-linux /usr/local/lib/perl5/site_perl/5.25.2 /usr/local/lib/perl5/5.25.2/x86_64-linux /usr/local/lib/perl5/5.25.2 . --- Environment for perl 5.25.2: HOME=/home/smylers LANG=en_GB.utf8 LANGUAGE=en_GB:en LC_COLLATE=C LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/smylers/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/games PERL_BADLANG (unset) PERL_CPANM_OPT=--sudo --prompt SHELL=/bin/bash
Subject: Re: [perl #128302] split docs don't mention pattern modifiers
From: Abigail <abigail [...] abigail.be>
To: perl5-porters [...] perl.org
Date: Tue, 31 May 2016 22:55:05 +0200
Download (untitled) / with headers
text/plain 1.1k
On Tue, May 31, 2016 at 09:06:57AM -0700, Smylers wrote: Show quoted text
> # New Ticket Created by Smylers > # Please include the string: [perl #128302] > # in the subject line of all future correspondence about this issue. > # <URL: https://rt.perl.org/Ticket/Display.html?id=128302 > > > > > This is a bug report for perl from Smylers@stripey.com, > generated with the help of perlbug 1.40 running under perl 5.25.2. > > > ----------------------------------------------------------------- > perldoc -f split doesn't state that split /PATTERN/ can use pattern > modifier flags, but it seems that it can: > > ./perl -Ilib -E 'say foreach split /a b # c/, q[0aB1a b # c2a B # c 3]' > 0aB1 > 2a B # c 3 > > ./perl -Ilib -E 'say foreach split /a b # c/ix, q[0aB1a b # c2a B # c 3]' > 0 > 1a b # c2a B # c 3 > > This should be included in split's documention. > > Are all the qr/PATTERN/ flags also valid on split? (With the already > documented exception that /^/ implies /^/m anyway.)
I think they are, but some warn. For instance: $ perl -wE 'our @a = split /f/g, "foo"' Use of /g modifier is meaningless in split at -e line 1. $ But I haven't checked all of them. Abigail
To: perl5-porters [...] perl.org
Subject: Re: [perl #128302] split docs don't mention pattern modifiers
From: Smylers <Smylers [...] stripey.com>
Date: Tue, 31 May 2016 22:09:45 +0100
Download (untitled) / with headers
text/plain 521b
Abigail writes: Show quoted text
> On Tue, May 31, 2016 at 09:06:57AM -0700, Smylers wrote: >
> > Are all the qr/PATTERN/ flags also valid on split?
> > I think they are, but some warn. For instance: > > $ perl -wE 'our @a = split /f/g, "foo"' > Use of /g modifier is meaningless in split at -e line 1.
/g is an m// modifier. perlop documents that m// takes all of the qr// modifiers plus /g and /c. Show quoted text
> But I haven't checked all of them.
I was hoping that somebody might already know, but if not I'll go through them. Smylers
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 847b
On Tue May 31 13:59:22 2016, smylers@stripey.com wrote: Show quoted text
> Abigail writes: >
> > On Tue, May 31, 2016 at 09:06:57AM -0700, Smylers wrote: > >
> > > Are all the qr/PATTERN/ flags also valid on split?
> > > > I think they are, but some warn. For instance: > > > > $ perl -wE 'our @a = split /f/g, "foo"' > > Use of /g modifier is meaningless in split at -e line 1.
> > /g is an m// modifier. perlop documents that m// takes all of the qr// > modifiers plus /g and /c. >
> > But I haven't checked all of them.
> > I was hoping that somebody might already know, but if not I'll go > through them.
It does accept all the modifiers that m// accepts, because there is actually an m// op there at compile time initially, before ck_split makes its exotic changes to the op tree. After all, you can write split m//.... -- Father Chrysostomos
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 1.2k
On Tue May 31 14:14:16 2016, sprout wrote: Show quoted text
> On Tue May 31 13:59:22 2016, smylers@stripey.com wrote:
> > Abigail writes: > >
> > > On Tue, May 31, 2016 at 09:06:57AM -0700, Smylers wrote: > > >
> > > > Are all the qr/PATTERN/ flags also valid on split?
> > > > > > I think they are, but some warn. For instance: > > > > > > $ perl -wE 'our @a = split /f/g, "foo"' > > > Use of /g modifier is meaningless in split at -e line 1.
> > > > /g is an m// modifier. perlop documents that m// takes all of the > > qr// > > modifiers plus /g and /c. > >
> > > But I haven't checked all of them.
> > > > I was hoping that somebody might already know, but if not I'll go > > through them.
> > It does accept all the modifiers that m// accepts, because there is > actually an m// op there at compile time initially, before ck_split > makes its exotic changes to the op tree. After all, you can write > split m//....
If you do change the docs, please don’t make it imply that split "foo" can take modifiers. split per se does not actually take any, but rather the m// that serves as its first argument. (In fact, the idea of split taking modifiers is not a way I have ever looked at it, even before I knew perl internals.) -- Father Chrysostomos
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 145b
Thanks for reporting this. I did some investigation, and added the documentation in 9285d0daed3a4ad1a03bc559d0c5587ca4557352 -- Karl Williamson
Download (untitled) / with headers
text/plain 313b
Thank you for filing this report. You have helped make Perl better. With the release today of Perl 5.26.0, this and 210 other issues have been resolved. Perl 5.26.0 may be downloaded via: https://metacpan.org/release/XSAWYERX/perl-5.26.0 If you find that the problem persists, feel free to reopen this ticket.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org