Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.9k stars 538 forks source link

constant as hash index won't work #6581

Closed p5pRT closed 21 years ago

p5pRT commented 21 years ago

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

Searchable as RT22757$

p5pRT commented 21 years ago

From Ulrich.Windl@rz.uni-regensburg.de

Created by windl@elf

This is a bug report for perl from windl@​elf\, generated with the help of perlbug 1.34 running under perl v5.8.0.

----------------------------------------------------------------- Consider this code fragment​: use constant Exif => 34665;   if (exists($$tagvals{34665})) { # Exif IFD Pointer #==>doesn't work​: if (exists($$tagvals{Exif})) { # Exif IFD Pointer

The variant commented out never finds the existing element\, the literal number works however.

Perl Info ``` Flags: category=core severity=high This perlbug was built using Perl v5.8.0 - Thu Mar 13 22:21:38 UTC 2003 It is being executed now by Perl v5.8.0 - Thu Mar 13 22:14:08 UTC 2003. Site configuration information for perl v5.8.0: Configured by root at Thu Mar 13 22:14:08 UTC 2003. Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration: Platform: osname=linux, osvers=2.4.20, archname=i586-linux-thread-multi uname='linux d20 2.4.20 #1 smp thu oct 10 18:10:26 utc 2002 i686 unknown unknown gnulinux ' config_args='-ds -e -Dprefix=/usr -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm - Duseshrplib=true' 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 -fno-strict-aliasing - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O3 --pipe', cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing' ccversion='', gccversion='3.3 20030226 (prerelease) (SuSE Linux)', 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 ='' libpth=/lib /usr/lib /usr/local/lib libs=-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil perllibs=-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil libc=, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic -Wl,- rpath,/usr/lib/perl5/5.8.0/i586-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared' Locally applied patches: @INC for perl v5.8.0: /usr/lib/perl5/5.8.0/i586-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl . Environment for perl v5.8.0: HOME=/home/windl LANG=de_DE@euro LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/var/lib/dosemu:/usr/games:/opt/gnome2 /bin:/opt/gnome/bin:/opt/kde3/bin:/usr/openwin/bin:/usr/lib/SmallEiffel/bin:/usr/lib/ja va/bin:/opt/gnome/bin PERL_BADLANG (unset) SHELL=/bin/bash ```
p5pRT commented 21 years ago

From @rgs

"Ulrich Windl" (via RT) \perlbug\-followup@​perl\.org wrote​:

Consider this code fragment​: use constant Exif => 34665; if (exists($$tagvals{34665})) { # Exif IFD Pointer #==>doesn't work​: if (exists($$tagvals{Exif})) { # Exif IFD Pointer

The variant commented out never finds the existing element\, the literal number works however.

IIRC\, last time this came out\, this was decided this was not going to be changed.

See http​://xrl.us/jb7 for example.

p5pRT commented 21 years ago

@rgs - Status changed from 'new' to 'resolved'