develooper Front page | perl.perl5.porters | Postings from December 2004

[perl #32915] "Use of uninitialized value in substitution iterator" while evaluating a string that match /0+[89]\d+/

From:
Tobias Spranger
Date:
December 6, 2004 16:00
Subject:
[perl #32915] "Use of uninitialized value in substitution iterator" while evaluating a string that match /0+[89]\d+/
Message ID:
rt-3.0.11-32915-102246.18.642323104602@perl.org
# New Ticket Created by  Tobias Spranger 
# Please include the string:  [perl #32915]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=32915 >


Dear perl developers

I tried to write a parser, that can do some basic math operations with numbers 
in a text file. If I execute this exaple program ...
------------8<------------
#!/usr/bin/perl -w

my $s= qr/[\+\-\/\*]/;
my $b=1000;
for (my $i=0; $i < 10; $i++)
{
  for (my $j=0; $j < 10; $j++)
  {
    my $a="some Text +${i}${j} some Other Text\n";
    $a =~s/($s[0-9]+)/$b.$1/ee;
    print $a ;
  }
}
------------8<------------

... I get the following output:

------------8<------------
some Text 1000 some Other Text
some Text 1001 some Other Text
some Text 1002 some Other Text
some Text 1003 some Other Text
some Text 1004 some Other Text
some Text 1005 some Other Text
some Text 1006 some Other Text
some Text 1007 some Other Text
Use of uninitialized value in substitution iterator at ./test_bug.pl line 10.
some Text  some Other Text
Use of uninitialized value in substitution iterator at ./test_bug.pl line 10.
some Text  some Other Text
some Text 1010 some Other Text
some Text 1011 some Other Text
:
:
------------8<------------
everything else wored expectet.

It seem's that perl's regex parser regards strings (or integers?) of the 
form /0+[89]\d*/ undefined. (I also tried this with more leading zeros and 
more trailing numbers in $a and got the same errors).

I get the same errors on my debian-sid-i386 laptop and on an debian-sid-pure64 
pc.

I hope this information is sufficient to solve this bug. If not, feel free to 
ask me for more information.

Yours sincerely,

Tobias Spranger



output of perlbug -d:
---
Flags:
    category=
    severity=
---
Site configuration information for perl v5.8.4:

Configured by Debian Project at Sat Nov  6 18:41:03 UTC 2004.

Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
  Platform:
    osname=linux, osvers=2.6.10-rc1-bk1, archname=i386-linux-thread-multi
    uname='linux cyberhq 2.6.10-rc1-bk1 #1 smp sat oct 23 12:56:07 pdt 2004 
i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN 
-Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr 
-Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr 
-Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.4 
-Dsitearch=/usr/local/lib/perl/5.8.4 -Dman1dir=/usr/share/man/man1 
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 
-Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl 
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib 
-Dlibperl=libperl.so.5.8.4 -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define 
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN 
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN 
-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-2)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so.5.8.4
    gnulibc_version='2.3.2'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
  
---
@INC for perl v5.8.4:
    /etc/perl
    /usr/local/lib/perl/5.8.4
    /usr/local/share/perl/5.8.4
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.8
    /usr/share/perl/5.8
    /usr/local/lib/site_perl
    .

---
Environment for perl v5.8.4:
    HOME=/home/tobi
    LANG=de_DE@euro
    LANGUAGE=de
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/tobi/.dist/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games:.
    PERL_BADLANG (unset)
    SHELL=/bin/bash




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