Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification for the return type of pos() in doc #15174

Closed
p5pRT opened this issue Feb 11, 2016 · 11 comments
Closed

Clarification for the return type of pos() in doc #15174

p5pRT opened this issue Feb 11, 2016 · 11 comments

Comments

@p5pRT
Copy link

p5pRT commented Feb 11, 2016

Migrated from rt.perl.org#127518 (status was 'resolved')

Searchable as RT127518$

@p5pRT
Copy link
Author

p5pRT commented Feb 11, 2016

From jason.gibson@gmail.com

Created by jason.gibson@gmail.com

The documentation for the core pos() function does not say whether or
not the return value is in characters or bytes.

  PAGER=cat perldoc -f pos | grep Return
  pos Returns the offset of where the last "m//g" search left off for

The offset is in characters, and the text could be improved by saying that.
E.g. 'Returns the offset in characters unless the "bytes" pragma is in
effect...'

  perl -E 'binmode STDOUT, "encoding(UTF-8)"; $_ = "\N{U+10000}abc";
say; say "chars​: ${\length}"; /a/g; say "pos() chars​: ${\pos}
(default)"; use bytes; say "bytes​: ${\length}"; say "pos() bytes​:
${\pos}"'
  𐀀abc
  chars​: 4
  pos() chars​: 2 (default)
  bytes​: 7
  pos() bytes​: 5

Thank you.

Perl Info

Flags:
    category=docs
    severity=low

Site configuration information for perl 5.18.2:

Configured by Debian Project at Thu Mar 27 18:28:21 UTC 2014.

Summary of my perl5 (revision 5 version 18 subversion 2) configuration:

  Platform:
    osname=linux, osvers=3.2.0-58-generic,
archname=x86_64-linux-gnu-thread-multi
    uname='linux brownie 3.2.0-58-generic #88-ubuntu smp tue dec 3
17:37:58 utc 2013 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4
-Wformat -Werror=format-security -Dldflags= -Wl,-Bsymbolic-functions
-Wl,-z,relro -Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro
-Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr
-Dprivlib=/usr/share/perl/5.18 -Darchlib=/usr/lib/perl/5.18
-Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local
-Dsitelib=/usr/local/share/perl/5.18.2
-Dsitearch=/usr/local/lib/perl/5.18.2 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1
-Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh
-Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -Uversiononly -DDEBUGGING=-g
-Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.18.2 -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector
-fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.8.2', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    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 /lib/x86_64-linux-gnu /lib/../lib
/usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /usr/lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=, so=so, useshrplib=true, libperl=libperl.so.5.18.2
    gnulibc_version='2.19'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'

Locally applied patches:
    DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
    DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove
overly restrictive DB_File version check.
    DEBPKG:debian/doc_info - Replace generic man(1) instructions with
Debian-specific information.
    DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak
enc2xs to follow symlinks and ignore missing @INC directories.
    DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove
Errno version check due to upgrade problems with long-running
processes.
    DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778
Note that libperl-dev package is required for embedded linking
    DEBPKG:fixes/respect_umask - Respect umask during installation
    DEBPKG:debian/writable_site_dirs - Set umask approproately for
site install directories
    DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of
libperl.a to /usr/lib
    DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
    DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables
written to the makefile
    DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to
the binary targets.
    DEBPKG:debian/instmodsh_doc - Debian policy doesn't install
.packlist files for core or vendor.
    DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH
as per Debian policy.
    DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be writable.
    DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
    DEBPKG:debian/module_build_man_extensions -
http://bugs.debian.org/479460 Adjust Module::Build manual page
extensions for the Debian Perl policy
    DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the
list of libraries wanted to what we actually need.
    DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038]
http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
    DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp
skip include directories in /usr/local
    DEBPKG:debian/cpanplus_definstalldirs -
http://bugs.debian.org/533707 Configure CPANPLUS to use the site
directories by default.
    DEBPKG:debian/cpanplus_config_path - Save local versions of
CPANPLUS::Config::System into /etc/perl.
    DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/702096
Point users to Debian packages of deprecated core modules
    DEBPKG:debian/squelch-locale-warnings -
http://bugs.debian.org/508764 Squelch locale warnings in Debian
package maintainer scripts
    DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the
upstream Git repository
    DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List
packaged patches for 5.18.2-2ubuntu1 in patchlevel.h
    DEBPKG:debian/skip-kfreebsd-crash - http://bugs.debian.org/628493
[perl #96272] Skip a crashing test case in t/op/threads.t on
GNU/kFreeBSD
    DEBPKG:fixes/document_makemaker_ccflags -
http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that
CCFLAGS should include $Config{ccflags}
    DEBPKG:debian/find_html2text - http://bugs.debian.org/640479
Configure CPAN::Distribution with correct name of html2text
    DEBPKG:debian/hurd_test_skip_stack - http://bugs.debian.org/650175
Disable failing GNU/Hurd tests dist/threads/t/stack.t
    DEBPKG:fixes/manpage_name_Test-Harness -
http://bugs.debian.org/650451 [rt.cpan.org #73399] cpan/Test-Harness:
add NAME headings in modules with POD
    DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/660195
[rt.cpan.org #28632] Make EU::MM pass LD through to recursive
Makefile.PL invocations
    DEBPKG:debian/perl5db-x-terminal-emulator.patch -
http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than
xterm in perl5db.pl
    DEBPKG:debian/cpan-missing-site-dirs -
http://bugs.debian.org/688842 Fix CPAN::FirstTime defaults with
nonexisting site dirs if a parent is writable
    DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790]
http://bugs.debian.org/587650 Memoize::Storable: respect 'nstore'
option not respected
    DEBPKG:fixes/net_ftp_failed_command - [rt.cpan.org #37700]
http://bugs.debian.org/491062 Net::FTP: cope gracefully with a failed
command
    DEBPKG:fixes/perlbug-patchlist - [3541c11]
http://bugs.debian.org/710842 [perl #118433] Make perlbug look up the
list of local patches at run time
    DEBPKG:fixes/module_metadata_security_doc - [68cdd4b]
CVE-2013-1437 documentation fix
    DEBPKG:fixes/module_metadata_taint_fix - [bff978f]
http://bugs.debian.org/722210 [rt.cpan.org #88576] untaint version, if
needed, in Module::Metadata
    DEBPKG:fixes/IPC-SysV-spelling - http://bugs.debian.org/730558
[rt.cpan.org #86736] Fix spelling of IPC_CREAT in IPC-SysV
documentation
    DEBPKG:fixes/fix-undef-source -


@INC for perl 5.18.2:
    /etc/perl
    /usr/local/lib/perl/5.18.2
    /usr/local/share/perl/5.18.2
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.18
    /usr/share/perl/5.18
    /usr/local/lib/site_perl
    .


Environment for perl 5.18.2:
    HOME=/home/user
    LANG=en_US.UTF-8
    LANGUAGE=en_US
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/user/src/emacs/i/bin:/opt/cabal/1.22/bin:/opt/ghc/7.10.3/bin:/home/user/.cabal/bin:/home/user/bin:/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    PERL_BADLANG (unset)
    SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Feb 13, 2016

From @jkeenan

On Thu Feb 11 10​:27​:03 2016, jason.gibson@​gmail.com wrote​:

This is a bug report for perl from jason.gibson@​gmail.com,
generated with the help of perlbug 1.39 running under perl 5.18.2.

-----------------------------------------------------------------
[Please describe your issue here]

The documentation for the core pos() function does not say whether or
not the return value is in characters or bytes.

PAGER=cat perldoc -f pos | grep Return
pos Returns the offset of where the last "m//g" search left
off for

The offset is in characters, and the text could be improved by saying
that.
E.g. 'Returns the offset in characters unless the "bytes" pragma is in
effect...'

perl -E 'binmode STDOUT, "encoding(UTF-8)"; $_ = "\N{U+10000}abc";
say; say "chars​: ${\length}"; /a/g; say "pos() chars​: ${\pos}
(default)"; use bytes; say "bytes​: ${\length}"; say "pos() bytes​:
${\pos}"'
𐀀abc
chars​: 4
pos() chars​: 2 (default)
bytes​: 7
pos() bytes​: 5

Thank you.

Please review the patch attached.

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Feb 13, 2016

From @jkeenan

127518-0001-Document-that-return-value-of-pos-by-default-express.patch
From ae005ed6395e0d26c42dacffe246ee5ebf5f1cb8 Mon Sep 17 00:00:00 2001
From: James E Keenan <jkeenan@cpan.org>
Date: Fri, 12 Feb 2016 20:36:25 -0500
Subject: [PATCH] Document that return value of pos(), by default, expresses
 characters.

When 'use bytes' is in effect, the return value expresses bytes.

Revise documentation and add some tests exemplifying this.

On recommendation of Jason Gibson.

For: RT # 127518
---
 pod/perlfunc.pod | 10 ++++++----
 t/op/pos.t       | 31 ++++++++++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 87c61f4..f283277 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -5221,10 +5221,12 @@ X<pos> X<match, position>
 =for Pod::Functions find or set the offset for the last/next m//g search
 
 Returns the offset of where the last C<m//g> search left off for the
-variable in question (C<$_> is used when the variable is not
-specified).  Note that 0 is a valid match offset.  C<undef> indicates
-that the search position is reset (usually due to match failure, but
-can also be because no match has yet been run on the scalar).
+variable in question (C<$_> is used when the variable is not specified).
+This offset is in characters unless the (no-longer-recommended) C<use
+bytes> pragma is in effect, in which case the offset is in bytes.  Note
+that 0 is a valid match offset.  C<undef> indicates that the search
+position is reset (usually due to match failure, but can also be because
+no match has yet been run on the scalar).
 
 C<pos> directly accesses the location used by the regexp engine to
 store the offset, so assigning to C<pos> will change that offset, and
diff --git a/t/op/pos.t b/t/op/pos.t
index 04b5272..c52f471 100644
--- a/t/op/pos.t
+++ b/t/op/pos.t
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 29;
+plan tests => 33;
 
 $x='banana';
 $x=~/.a/g;
@@ -131,3 +131,32 @@ for my $one(pos $x) {
            'no assertion failure when getting pos clobbers ref with undef';
     }
 }
+
+{
+    # RT # 127518
+    my $x = "\N{U+10000}abc";
+    my %expected = (
+        chars   => { length => 4, pos => 2 },
+        bytes   => { length => 7, pos => 5 },
+    );
+    my %observed;
+    $observed{chars}{length} = length($x);
+    $x =~ m/a/g;
+    $observed{chars}{pos}    = pos($x);
+
+    {
+        use bytes;
+        $observed{bytes}{length} = length($x);
+        $observed{bytes}{pos}    = pos($x);
+    }
+
+    is( $observed{chars}{length}, $expected{chars}{length},
+         "Got expected length in chars");
+    is( $observed{chars}{pos}, $expected{chars}{pos},
+         "Got expected pos in chars");
+    is( $observed{bytes}{length}, $expected{bytes}{length},
+         "Got expected length in bytes");
+    is( $observed{bytes}{pos}, $expected{bytes}{pos},
+         "Got expected pos in bytes");
+}
+
-- 
1.9.1

@p5pRT
Copy link
Author

p5pRT commented Feb 13, 2016

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Feb 15, 2016

From jason.gibson@gmail.com

Looks good. Thank you.
On Feb 12, 2016 5​:47 PM, "James E Keenan via RT" <perlbug-followup@​perl.org>
wrote​:

On Thu Feb 11 10​:27​:03 2016, jason.gibson@​gmail.com wrote​:

This is a bug report for perl from jason.gibson@​gmail.com,
generated with the help of perlbug 1.39 running under perl 5.18.2.

-----------------------------------------------------------------
[Please describe your issue here]

The documentation for the core pos() function does not say whether or
not the return value is in characters or bytes.

PAGER=cat perldoc -f pos | grep Return
pos Returns the offset of where the last "m//g" search left
off for

The offset is in characters, and the text could be improved by saying
that.
E.g. 'Returns the offset in characters unless the "bytes" pragma is in
effect...'

perl -E 'binmode STDOUT, "encoding(UTF-8)"; $_ = "\N{U+10000}abc";
say; say "chars​: ${\length}"; /a/g; say "pos() chars​: ${\pos}
(default)"; use bytes; say "bytes​: ${\length}"; say "pos() bytes​:
${\pos}"'
𐀀abc
chars​: 4
pos() chars​: 2 (default)
bytes​: 7
pos() bytes​: 5

Thank you.

Please review the patch attached.

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

From ae005ed Mon Sep 17 00​:00​:00 2001
From​: James E Keenan <jkeenan@​cpan.org>
Date​: Fri, 12 Feb 2016 20​:36​:25 -0500
Subject​: [PATCH] Document that return value of pos(), by default, expresses
characters.

When 'use bytes' is in effect, the return value expresses bytes.

Revise documentation and add some tests exemplifying this.

On recommendation of Jason Gibson.

For​: RT # 127518
---
pod/perlfunc.pod | 10 ++++++----
t/op/pos.t | 31 ++++++++++++++++++++++++++++++-
2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index 87c61f4..f283277 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@​@​ -5221,10 +5221,12 @​@​ X<pos> X<match, position>
=for Pod​::Functions find or set the offset for the last/next m//g search

Returns the offset of where the last C<m//g> search left off for the
-variable in question (C<$_> is used when the variable is not
-specified). Note that 0 is a valid match offset. C<undef> indicates
-that the search position is reset (usually due to match failure, but
-can also be because no match has yet been run on the scalar).
+variable in question (C<$_> is used when the variable is not specified).
+This offset is in characters unless the (no-longer-recommended) C<use
+bytes> pragma is in effect, in which case the offset is in bytes. Note
+that 0 is a valid match offset. C<undef> indicates that the search
+position is reset (usually due to match failure, but can also be because
+no match has yet been run on the scalar).

C<pos> directly accesses the location used by the regexp engine to
store the offset, so assigning to C<pos> will change that offset, and
diff --git a/t/op/pos.t b/t/op/pos.t
index 04b5272..c52f471 100644
--- a/t/op/pos.t
+++ b/t/op/pos.t
@​@​ -6,7 +6,7 @​@​ BEGIN {
require './test.pl';
}

-plan tests => 29;
+plan tests => 33;

$x='banana';
$x=/.a/g;
@​@​ -131,3 +131,32 @​@​ for my $one(pos $x) {
'no assertion failure when getting pos clobbers ref with
undef';
}
}
+
+{
+ # RT # 127518
+ my $x = "\N{U+10000}abc";
+ my %expected = (
+ chars => { length => 4, pos => 2 },
+ bytes => { length => 7, pos => 5 },
+ );
+ my %observed;
+ $observed{chars}{length} = length($x);
+ $x =
m/a/g;
+ $observed{chars}{pos} = pos($x);
+
+ {
+ use bytes;
+ $observed{bytes}{length} = length($x);
+ $observed{bytes}{pos} = pos($x);
+ }
+
+ is( $observed{chars}{length}, $expected{chars}{length},
+ "Got expected length in chars");
+ is( $observed{chars}{pos}, $expected{chars}{pos},
+ "Got expected pos in chars");
+ is( $observed{bytes}{length}, $expected{bytes}{length},
+ "Got expected length in bytes");
+ is( $observed{bytes}{pos}, $expected{bytes}{pos},
+ "Got expected pos in bytes");
+}
+
--
1.9.1

@p5pRT
Copy link
Author

p5pRT commented Apr 21, 2016

From @jkeenan

On Fri Feb 12 17​:47​:43 2016, jkeenan wrote​:

On Thu Feb 11 10​:27​:03 2016, jason.gibson@​gmail.com wrote​:

This is a bug report for perl from jason.gibson@​gmail.com,
generated with the help of perlbug 1.39 running under perl 5.18.2.

-----------------------------------------------------------------
[Please describe your issue here]

The documentation for the core pos() function does not say whether or
not the return value is in characters or bytes.

PAGER=cat perldoc -f pos | grep Return
pos Returns the offset of where the last "m//g" search left
off for

The offset is in characters, and the text could be improved by saying
that.
E.g. 'Returns the offset in characters unless the "bytes" pragma is in
effect...'

perl -E 'binmode STDOUT, "encoding(UTF-8)"; $_ = "\N{U+10000}abc";
say; say "chars​: ${\length}"; /a/g; say "pos() chars​: ${\pos}
(default)"; use bytes; say "bytes​: ${\length}"; say "pos() bytes​:
${\pos}"'
𐀀abc
chars​: 4
pos() chars​: 2 (default)
bytes​: 7
pos() bytes​: 5

Thank you.

Please review the patch attached.

While the OP liked the patch proposed, we didn't hear from any other committers. Could we hear from committers so that we know whether to apply this (in 5.25.1)?

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Jun 20, 2016

From @iabyn

On Wed, Apr 20, 2016 at 06​:53​:02PM -0700, James E Keenan via RT wrote​:

On Fri Feb 12 17​:47​:43 2016, jkeenan wrote​:

On Thu Feb 11 10​:27​:03 2016, jason.gibson@​gmail.com wrote​:

This is a bug report for perl from jason.gibson@​gmail.com,
generated with the help of perlbug 1.39 running under perl 5.18.2.

-----------------------------------------------------------------
[Please describe your issue here]

The documentation for the core pos() function does not say whether or
not the return value is in characters or bytes.

PAGER=cat perldoc -f pos | grep Return
pos Returns the offset of where the last "m//g" search left
off for

The offset is in characters, and the text could be improved by saying
that.
E.g. 'Returns the offset in characters unless the "bytes" pragma is in
effect...'

perl -E 'binmode STDOUT, "encoding(UTF-8)"; $_ = "\N{U+10000}abc";
say; say "chars​: ${\length}"; /a/g; say "pos() chars​: ${\pos}
(default)"; use bytes; say "bytes​: ${\length}"; say "pos() bytes​:
${\pos}"'
𐀀abc
chars​: 4
pos() chars​: 2 (default)
bytes​: 7
pos() bytes​: 5

Thank you.

Please review the patch attached.

While the OP liked the patch proposed, we didn't hear from any other
committers. Could we hear from committers so that we know whether to
apply this (in 5.25.1)?

Looks good to me.

--
Technology is dominated by two types of people​: those who understand what
they do not manage, and those who manage what they do not understand.

@p5pRT
Copy link
Author

p5pRT commented Aug 6, 2016

From @khwilliamson

Thanks, applied (after rebasing) as
b94222d
--
Karl Williamson

@p5pRT
Copy link
Author

p5pRT commented Aug 6, 2016

@khwilliamson - Status changed from 'open' to 'pending release'

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

From @khwilliamson

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.

@p5pRT
Copy link
Author

p5pRT commented May 30, 2017

@khwilliamson - Status changed from 'pending release' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant