develooper Front page | perl.perl5.porters | Postings from April 2007

[perl #42622] Perl 5.87 squashes hash arrays into lists by default

Thread Next
From:
garrett . w . cooper @ intel . com
Date:
April 20, 2007 01:28
Subject:
[perl #42622] Perl 5.87 squashes hash arrays into lists by default
Message ID:
rt-3.6.HEAD-6655-1177033739-368.42622-75-0@perl.org
# New Ticket Created by  garrett.w.cooper@intel.com 
# Please include the string:  [perl #42622]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42622 >



This is a bug report for perl from garrett.w.cooper@intel.com,
generated with the help of perlbug 1.35 running under perl v5.8.5.


-----------------------------------------------------------------
[Please enter your report here]

I can only include portions of my source as it is proprietary licensed and internal.
                                                                                                                                                                                                     
Here are all included relevant excerpts where the Hash is modified, and based on the handbook (unless I'm missing something extremely small), my syntax is legit:
                                                                                                                                                                                                     
my %test_templater_hash={};
$test_templater_hash{OPTIONAL_DEFS} = {};
                                                                                                                                                                                                     
# [...]
                                                                                                                                                                                                     
$test_templater_hash{DEF_TOOL_NAME} = $def_tool_name;
                                                                                                                                                                                                     
# [...]
                                                                                                                                                                                                     
$test_templater_hash{GOT_ICE}=1;
                                                                                                                                                                                                     
# [...]
                                                                                                                                                                                                     
$test_templater_hash{OPTIONAL_DEFS}{num_Boxes} = $num_boxes;
                                                                                                                                                                                                     
Something's strange though because it claims that %test_templater_hash is an uneven list, and that I'm assigning it a reference on the 2nd line shown, which is incredibly bizarre (!).
                                                                                                                                                                                                     
Please take my word on the fact that I'm not doing anything (knowingly) to modify the data type of my hash array to a list.
                                                                                                                                                                                                     
>From the debugger (with warnings and tainting mode near the last line shown above in my code excerpts):
                                                                                                                                                                                                     
IV. Section definitions
main::(./bin/Ez_Templater.pl:151):                                      if(&confirm("Does this section need a different tool chain name than the default (option $def_tool_name)")) {
  DB<2> x %test_templater_args
  empty array
  DB<3> x %test_templater_hash
0  'DEF_TOOL_NAME'
1  2
2  'OPTIONAL_DEFS'
3  HASH(0x855ce20)
   'num_Boxes' => 2
4  'GOT_ICE'
5  1
                                                                                                                                                                                                     
It should look something like:
                                                                                                                                                                                                     
DEF_TOOL_NAME => 2
HASH({blah})
        num_Boxes => 2
GOT_ICE => 1

I'd really appreciate the help..

Thanks!

-Garrett

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=high
---
Site configuration information for perl v5.8.5:

Configured by tmnguye3 at Tue Sep 14 12:20:36 MST 2004.

Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
  Platform:
    osname=linux, osvers=2.4.9-45lxset12smp, archname=i686-linux-64int
    uname='linux chlx003 2.4.9-45lxset12smp #1 smp tue jan 27 00:35:25 pst 2004 i686 unknown '
    config_args='-Uusemymalloc -Dprefix=/usr/intel/pkgs/perl/5.8.5 -Dcc=/usr/intel/pkgs/gcc/3.3/bin/gcc -Doptimize=-O3 -Dloclibpth=/usr/intel/00r1/lib /usr/intel/pkgs/libxml2/2.6.11/lib -Dlocincpth=/usr/intel/00r1/include /usr/intel/pkgs/libxml2/2.6.11/include -Duse64bitint -Uinstallusrbinperl -Duselargefiles -Dperladmin=tmnguye3@sedona.intel.com -Duseshrplib=true -Uinstallusrbinperl -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='/usr/intel/pkgs/gcc/3.3/bin/gcc', ccflags ='-fno-strict-aliasing -pipe -I/usr/intel/00r1/include -I/usr/intel/pkgs/libxml2/2.6.11/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O3',
    cppflags='-fno-strict-aliasing -pipe -I/usr/intel/00r1/include -I/usr/intel/pkgs/libxml2/2.6.11/include -I/usr/include/gdbm'
    ccversion='', gccversion='3.3', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='/usr/intel/pkgs/gcc/3.3/bin/gcc', ldflags =' -L/usr/intel/00r1/lib -L/usr/intel/pkgs/libxml2/2.6.11/lib'
    libpth=/usr/intel/00r1/lib /usr/intel/pkgs/libxml2/2.6.11/lib /lib /usr/lib /usr/local/lib
    libs=-lnsl -lndbm -lgdbm -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.2.4.so, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.2.4'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/intel/00r1/lib -L/usr/intel/pkgs/libxml2/2.6.11/lib'

Locally applied patches:
    

---
@INC for perl v5.8.5:
    /usr/intel/pkgs/perl/5.8.5/lib/5.8.5/i686-linux-64int
    /usr/intel/pkgs/perl/5.8.5/lib/5.8.5
    /usr/intel/pkgs/perl/5.8.5/lib/site_perl/5.8.5/i686-linux-64int
    /usr/intel/pkgs/perl/5.8.5/lib/site_perl/5.8.5
    /usr/intel/pkgs/perl/5.8.5/lib/site_perl
    .

---
Environment for perl v5.8.5:
    HOME=/usr/users/a5fs/gwcooper
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LC_COLLATE=C
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/opt/gnome/bin:/usr/users/a4fs/environment/imdenv/bin:/usr/intel/bin:/usr/local/bin:/usr/bin:/bin:/usr/ucb:/usr/etc:/etc:/usr/afsws/bin:/usr/bin/X11:/usr/common/script:/usr/users/a4fs/environment/genenv/bin:.:/toolbbs/etc:/usr/asic/bin:/usr/asic/pub/vhdl_utils/bin:/usr/users/a5fs/gwcooper/bin
    PERL_BADLANG (unset)
    SHELL=/usr/intel/00r1.1/bin/tcsh


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