develooper Front page | perl.perl5.porters | Postings from July 2012

[perl #114040] Multiline constructs in regexp blocks

Thread Next
From:
Father Chrysostomos
Date:
July 8, 2012 14:18
Subject:
[perl #114040] Multiline constructs in regexp blocks
Message ID:
rt-3.6.HEAD-28836-1341782316-515.114040-75-0@perl.org
# New Ticket Created by  Father Chrysostomos 
# Please include the string:  [perl #114040]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=114040 >


These all fail to parse with bleadperl, but work in 5.16:

# formats
/(?{ format =
@<
$x
.
})/;
$x = ok;
write;

# deer hocks
/(?{ <<END
END
})/;

# pod
/(?{

=pod

onuthoen oeun hoeun oue

=cut

})/


Either this code under case '\n' in yylex needs to change, so it does not assume the rest of the buffer is on one line:

	    *s = '\0';
	    PL_bufend = s;

Or we need sublex_push at the start of a format.

I haven’t looked into the other two.

It seems to me that toke.c was written under the assumption that the current buffer would only contain one line of code.  And then string eval came along, so we ended up with if(in_eval) sprinkled here and there.  If we could unify the code, we could avoid many discrepancies that result.  C.f. #78348.
---
Flags:
    category=core
    severity=high
---
Site configuration information for perl 5.17.0:

Configured by sprout at Sun May 27 22:53:58 PDT 2012.

Summary of my perl5 (revision 5 version 17 subversion 0) configuration:
  Snapshot of: 0518cfa2586ee9f51080e63f5c5ad77803deaaa8
  Platform:
    osname=darwin, osvers=10.5.0, archname=darwin-2level
    uname='darwin pint.local 10.5.0 darwin kernel version 10.5.0: fri nov 5 23:20:39 pdt 2010; root:xnu-1504.9.17~1release_i386 i386 '
    config_args='-de -Dusedevel -DDEBUGGING'
    hint=previous, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    optimize='-O3 -g',
    cppflags='-fno-common -DPERL_DARWIN -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -fno-common -DPERL_DARWIN -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5664)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector'

Locally applied patches:
    

---
@INC for perl 5.17.0:
    /usr/local/lib/perl5/site_perl/5.17.0/darwin-2level
    /usr/local/lib/perl5/site_perl/5.17.0
    /usr/local/lib/perl5/5.17.0/darwin-2level
    /usr/local/lib/perl5/5.17.0
    /usr/local/lib/perl5/site_perl
    .

---
Environment for perl 5.17.0:
    DYLD_LIBRARY_PATH (unset)
    HOME=/Users/sprout
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/bin
    PERL_BADLANG (unset)
    SHELL=/bin/bash


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About