Bug 844460 - hash copy interface broken in 2.72
hash copy interface broken in 2.72
Status: CLOSED ERRATA
Product: Fedora EPEL
Classification: Fedora
Component: perl-Config-IniFiles (Show other bugs)
el5
x86_64 Linux
unspecified Severity high
: ---
: ---
Assigned To: Tom "spot" Callaway
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-30 13:58 EDT by Dimitri Maziuk
Modified: 2012-08-21 14:35 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-08-21 14:35:54 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Dimitri Maziuk 2012-07-30 13:58:07 EDT
Description of problem:

%hash = %{$ini{$section}} stopped working after 2.72 upgrade.

Version-Release number of selected component (if applicable):

2.72-1.el5

How reproducible:

Always (see test case below).

Steps to Reproduce:

manpage quote:
==============

%hash = %{$ini{$section}}

Using the tie interface, you can copy whole sections of the ini file into another hash. Note that this makes a copy of the entire section. The new hash in no longer tied to the ini file, In particular, this means -default and -nocase settings will not apply to %hash.

test.ini file:
==============

[section1]
  key = val11
  coo = val12
[section2]
  fookey = foo
  barkey = bar
  bazkey = baz
[section3]
  kiki = val31
  cookie = val32

test.pl file:
==============
#!/usr/bin/perl -w

use strict;
use Config::IniFiles;
use Data::Dumper;
$Data::Dumper::Indent = 3;

my %hash;
my $key;

tie %hash, 'Config::IniFiles', ( -file => "test.ini" ) ;
print Dumper(\%hash);
for $key ( keys( %hash ) ) {
    print "+$key\n";
}
print "The source is " . $hash{'section2'}{'barkey'};
print "\n========================================\n";
my %copy = %{$hash{'section2'}};
print "The copy is " . $copy{'barkey'};
print "\n";

  
Actual results:

$ ./test.pl
$VAR1 = {
          'section1' => {},
          'section2' => {},
          'section3' => {}
        };
+section1
+section2
+section3
The source is bar
========================================
Use of uninitialized value in concatenation (.) or string at ./test.pl line 20.
The copy is

Expected results:

Last line should read "The copy is bar" (error message shouldn't be there either).

Additional info:
$ arch
x86_64
$ cat /etc/redhat-release
CentOS release 5.8 (Final)
Comment 1 Fedora Update System 2012-08-02 13:05:19 EDT
perl-Config-IniFiles-2.72-2.el5.2, perl-List-MoreUtils-0.33-5.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2012-6537/perl-Config-IniFiles-2.72-2.el5.2,perl-List-MoreUtils-0.33-5.el5
Comment 2 Fedora Update System 2012-08-05 02:42:00 EDT
Package perl-Config-IniFiles-2.72-2.el5.2, perl-List-MoreUtils-0.33-5.el5:
* should fix your issue,
* was pushed to the Fedora EPEL 5 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing perl-Config-IniFiles-2.72-2.el5.2 perl-List-MoreUtils-0.33-5.el5'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2012-6537/perl-Config-IniFiles-2.72-2.el5.2,perl-List-MoreUtils-0.33-5.el5
then log in and leave karma (feedback).
Comment 3 Richard Guest 2012-08-13 00:01:49 EDT
Yup, I've had the same problem and these updates fix the issue.
Comment 4 Fedora Update System 2012-08-21 14:35:54 EDT
perl-Config-IniFiles-2.72-2.el5.2, perl-List-MoreUtils-0.33-5.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.