QM has asked for the wisdom of the Perl Monks concerning the following question:
I have some defective code, which on one version of Perl doesn't emit a line number:
(The (? should be (?:.)#!/your/perl/here use strict; use warnings; my $x = q/Just Another Perl Hacker/; if ($x =~ m/(?The Purl Caretakers' John)/) { print "Anagram Regex?\n"; } exit;
On a Linux build of 5.8.0:
Of course, this is easy to find, as it's a short program. But it doesn't list the offending file (or module), so it may be more difficult to find in a real application.Linux% perl -c 665749.pl Sequence (?T...) not recognized in regex; marked by <-- HERE in m/(?T +<-- HERE he Purl Caretakers' John)/
For comparison, here's ActiveState's 5.8.8:
Windows XP>perl -c 665749.pl Sequence (?T...) not recognized in regex; marked by <-- HERE in m/(?T +<-- HERE he Purl Caretakers' John)/ at 665749.pl line 8.
The full Linux build info:
Linux% perl -V Summary of my perl5 (revision 5.0 version 8 subversion 0) configuratio +n: Platform: osname=linux, osvers=2.4.21-25.elsmp, archname=i386-linux-thread-m +ulti uname='linux porky.build.redhat.com 2.4.21-25.elsmp #1 smp fri nov + 12 21:34:51 est 2004 i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -march=i386 -mcpu=i686 - +Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red + Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefi +x=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 -Duseshr +plib -Duse hreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_d +b -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio - +Dinstallus binperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemulti +plicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS + -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_S +OURCE -D_F LE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g -pipe -march=i386 -mcpu=i686', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGI +NG -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-54)' +, gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil perllibs=-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.s +o gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynami +c -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_ +FILES PERL_IMPLICIT_CONTEXT Locally applied patches: MAINT18379 Built under linux Compiled at Dec 13 2005 16:27:05 %ENV: PERL5LIB="/home/somebody/perl/lib" @INC: /home/somebody/perl/lib/i386-linux-thread-multi /home/somebody/perl/lib /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .
Is this a known problem with 5.8.0? I did a search, but I don't think I can say with confidence that this issue hasn't been raised somewhere.
Update: In the original post, I replaced the shebang section with something simpler, which changed the actual line number reported. I've updated the error message to reflect the actual code posted.
-QM
--
Quantum Mechanics: The dreams stuff is made of
Back to
Seekers of Perl Wisdom