Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Clone-PP for openSUSE:Factory checked in at 2026-09-23 14:34:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Clone-PP (Old) and /work/SRC/openSUSE:Factory/.perl-Clone-PP.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Clone-PP" Wed Sep 23 14:34:22 2026 rev:15 rq:1379455 version:1.90.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Clone-PP/perl-Clone-PP.changes 2020-10-21 14:44:26.193787893 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Clone-PP.new.383539/perl-Clone-PP.changes 2026-09-23 14:35:46.656397991 +0200 @@ -1,0 +2,12 @@ +Tue Sep 15 10:08:26 UTC 2026 - Tina Müller <[email protected]> + +- updated to 1.90.0 (1.09) + see /usr/share/doc/packages/perl-Clone-PP/Changes + + 1.09 2026-09-13 NEILB + - Use `our` rather than `use vars`. + - Clean up whitespace. + - Fix tests to be warnings and strict compatible. + - All from HAARG++ + +------------------------------------------------------------------- Old: ---- Clone-PP-1.08.tar.gz New: ---- Clone-PP-1.09.tar.gz README.md _scmsync.obsinfo build.specials.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Clone-PP.spec ++++++ --- /var/tmp/diff_new_pack.w3ZuFr/_old 2026-09-23 14:35:47.231421768 +0200 +++ /var/tmp/diff_new_pack.w3ZuFr/_new 2026-09-23 14:35:47.233421850 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Clone-PP # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,20 +16,23 @@ # +%define cpan_name Clone-PP Name: perl-Clone-PP -Version: 1.08 +Version: 1.90.0 Release: 0 -%define cpan_name Clone-PP -Summary: Recursively copy Perl datatypes +# 1.09 -> normalize -> 1.90.0 +%define cpan_version 1.09 License: Artistic-1.0 OR GPL-1.0-or-later -Group: Development/Libraries/Perl +Summary: Recursively copy Perl datatypes URL: https://metacpan.org/release/%{cpan_name} -Source0: https://cpan.metacpan.org/authors/id/N/NE/NEILB/%{cpan_name}-%{version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/N/NE/NEILB/%{cpan_name}-%{cpan_version}.tar.gz Source1: cpanspec.yml +Source100: README.md BuildArch: noarch -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros +Provides: perl(Clone::PP) = %{version} +%undefine __perllib_provides %{perl_requires} %description @@ -57,11 +60,11 @@ 'clone_init', it is called on the copied object before it is returned. %prep -%setup -q -n %{cpan_name}-%{version} +%autosetup -n %{cpan_name}-%{cpan_version} -p1 %build perl Makefile.PL INSTALLDIRS=vendor -make %{?_smp_mflags} +%make_build %check make test @@ -72,6 +75,5 @@ %perl_gen_filelist %files -f %{name}.files -%defattr(-,root,root,755) %doc Changes README ++++++ Clone-PP-1.08.tar.gz -> Clone-PP-1.09.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/Changes new/Clone-PP-1.09/Changes --- old/Clone-PP-1.08/Changes 2020-10-20 12:48:25.000000000 +0200 +++ new/Clone-PP-1.09/Changes 2026-09-13 16:21:06.000000000 +0200 @@ -1,5 +1,11 @@ Revision history for Perl module Clone::PP +1.09 2026-09-13 NEILB + - Use `our` rather than `use vars`. + - Clean up whitespace. + - Fix tests to be warnings and strict compatible. + - All from HAARG++ + 1.08 2020-10-20 NEILB - Changed "sub main'dump" to "sub main::dump" in t/dump.pl, as that meant this distribution wouldn't build under cperl. RT#125171 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/META.json new/Clone-PP-1.09/META.json --- old/Clone-PP-1.08/META.json 2020-10-20 12:50:25.000000000 +0200 +++ new/Clone-PP-1.09/META.json 2026-09-13 16:22:35.000000000 +0200 @@ -4,7 +4,7 @@ "unknown" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], @@ -35,7 +35,6 @@ "Exporter" : "0", "perl" : "5.006", "strict" : "0", - "vars" : "0", "warnings" : "0" } }, @@ -55,6 +54,6 @@ "web" : "https://github.com/neilbowers/Clone-PP" } }, - "version" : 1.08, - "x_serialization_backend" : "JSON::PP version 2.97001" + "version" : 1.09, + "x_serialization_backend" : "JSON::PP version 4.04" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/META.yml new/Clone-PP-1.09/META.yml --- old/Clone-PP-1.08/META.yml 2020-10-20 12:50:25.000000000 +0200 +++ new/Clone-PP-1.09/META.yml 2026-09-13 16:22:35.000000000 +0200 @@ -10,7 +10,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -24,9 +24,8 @@ Exporter: '0' perl: '5.006' strict: '0' - vars: '0' warnings: '0' resources: repository: git://github.com/neilbowers/Clone-PP.git -version: 1.08 +version: 1.09 x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/Makefile.PL new/Clone-PP-1.09/Makefile.PL --- old/Clone-PP-1.08/Makefile.PL 2014-02-18 00:43:32.000000000 +0100 +++ new/Clone-PP-1.09/Makefile.PL 2026-09-13 16:20:00.000000000 +0200 @@ -7,14 +7,13 @@ } WriteMakefile( - 'NAME' => 'Clone::PP', + 'NAME' => 'Clone::PP', 'VERSION_FROM' => 'lib/Clone/PP.pm', PREREQ_PM => { 'Exporter' => 0, 'strict' => 0, 'warnings' => 0, - 'vars' => 0, }, ($mm_ver >= 6.48 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/lib/Clone/PP.pm new/Clone-PP-1.09/lib/Clone/PP.pm --- old/Clone-PP-1.08/lib/Clone/PP.pm 2020-10-20 12:49:12.000000000 +0200 +++ new/Clone-PP-1.09/lib/Clone/PP.pm 2026-09-13 16:22:02.000000000 +0200 @@ -3,21 +3,19 @@ use 5.006; use strict; use warnings; -use vars qw($VERSION @EXPORT_OK); use Exporter; -$VERSION = 1.08; +our $VERSION = 1.09; -@EXPORT_OK = qw( clone ); +our @EXPORT_OK = qw( clone ); sub import { goto &Exporter::import } # lazy Exporter # These methods can be temporarily overridden to work with a given class. -use vars qw( $CloneSelfMethod $CloneInitMethod ); -$CloneSelfMethod ||= 'clone_self'; -$CloneInitMethod ||= 'clone_init'; +our $CloneSelfMethod ||= 'clone_self'; +our $CloneInitMethod ||= 'clone_init'; # Used to detect looped networks and avoid infinite recursion. -use vars qw( %CloneCache ); +our %CloneCache; # Generic cloning function sub clone { @@ -44,7 +42,7 @@ $ref_type = $1; # Some objects would prefer to clone themselves; check for clone_self(). return $CloneCache{ $source } = $source->$CloneSelfMethod() - if $source->can($CloneSelfMethod); + if $source->can($CloneSelfMethod); } # To make a copy: @@ -175,8 +173,8 @@ =head1 AUTHOR AND CREDITS Developed by Matthew Simon Cavalletto at Evolution Softworks. -More free Perl software is available at C<www.evoscript.org>. +Currently maintained by Neil Bowers (NEILB). =head1 COPYRIGHT AND LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/01array.t new/Clone-PP-1.09/t/01array.t --- old/Clone-PP-1.08/t/01array.t 2014-02-15 11:09:41.000000000 +0100 +++ new/Clone-PP-1.09/t/01array.t 2026-09-13 16:20:00.000000000 +0200 @@ -1,3 +1,6 @@ +use strict; +use warnings; + # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' @@ -6,6 +9,7 @@ # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) +my $loaded; BEGIN { $| = 1; print "1..6\n"; } END {print "not ok 1\n" unless $loaded;} use Clone::PP qw( clone ); @@ -21,9 +25,7 @@ package Test::Array; -use vars @ISA; - -@ISA = qw(Clone::PP); +our @ISA = qw(Clone::PP); sub new { @@ -34,6 +36,7 @@ package main; +my $test; sub ok { print "ok $test\n"; $test++ } sub not_ok { print "not ok $test\n"; $test++ } @@ -64,5 +67,5 @@ my @circ = (); $circ[0] = \@circ; -$aref = clone(\@circ); +my $aref = clone(\@circ); Dumper(\@circ) eq Dumper($aref) ? ok : not_ok; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/02hash.t new/Clone-PP-1.09/t/02hash.t --- old/Clone-PP-1.08/t/02hash.t 2014-02-15 11:09:41.000000000 +0100 +++ new/Clone-PP-1.09/t/02hash.t 2026-09-13 16:20:00.000000000 +0200 @@ -1,3 +1,6 @@ +use strict; +use warnings; + # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' @@ -6,6 +9,7 @@ # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) +my $loaded; BEGIN { $| = 1; print "1..11\n"; } END {print "not ok 1\n" unless $loaded;} use Clone::PP qw( clone ); @@ -21,9 +25,7 @@ package Test::Hash; -use vars @ISA; - -@ISA = qw(Clone::PP); +our @ISA = qw(Clone::PP); sub new { @@ -40,6 +42,7 @@ package main; +my $test; sub ok { print "ok $test\n"; $test++ } sub not_ok { print "not ok $test\n"; $test++ } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/03scalar.t new/Clone-PP-1.09/t/03scalar.t --- old/Clone-PP-1.08/t/03scalar.t 2014-02-15 11:09:41.000000000 +0100 +++ new/Clone-PP-1.09/t/03scalar.t 2026-09-13 16:20:00.000000000 +0200 @@ -1,3 +1,6 @@ +use strict; +use warnings; + # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' @@ -6,6 +9,7 @@ # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) +my $loaded; BEGIN { $| = 1; print "1..6\n"; } END {print "not ok 1\n" unless $loaded;} use Clone::PP qw( clone ); @@ -21,9 +25,7 @@ package Test::Scalar; -use vars @ISA; - -@ISA = qw(Clone::PP); +our @ISA = qw(Clone::PP); sub new { @@ -40,6 +42,7 @@ package main; +my $test; sub ok { print "ok $test\n"; $test++ } sub not_ok { print "not ok $test\n"; $test++ } @@ -55,10 +58,10 @@ my $c = \"test 2 scalar"; my $d = Clone::PP::clone($c, 2); -$$c == $$d ? ok : not_ok; +$$c eq $$d ? ok : not_ok; $c != $d ? ok : not_ok; my $circ = undef; $circ = \$circ; -$aref = clone($circ); +my $aref = clone($circ); Dumper($circ) eq Dumper($aref) ? ok : not_ok; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/05dtype.t new/Clone-PP-1.09/t/05dtype.t --- old/Clone-PP-1.08/t/05dtype.t 2014-02-15 11:09:41.000000000 +0100 +++ new/Clone-PP-1.09/t/05dtype.t 2026-09-13 16:20:00.000000000 +0200 @@ -1,3 +1,6 @@ +use strict; +use warnings; + # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' @@ -6,6 +9,7 @@ # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) +my $loaded; BEGIN { $| = 1; print "1..2\n"; } END {print "not ok 1\n" unless $loaded;} use Clone::PP; @@ -28,7 +32,7 @@ # use Storable qw( dclone ); $^W = 0; -$test = 2; +my $test = 2; sub ok { printf("ok %d\n", $test++); } sub not_ok { printf("not ok %d\n", $test++); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/06refcnt.t new/Clone-PP-1.09/t/06refcnt.t --- old/Clone-PP-1.08/t/06refcnt.t 2014-02-15 11:09:41.000000000 +0100 +++ new/Clone-PP-1.09/t/06refcnt.t 2026-09-13 16:20:00.000000000 +0200 @@ -1,3 +1,6 @@ +use strict; +use warnings; + # Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' @@ -6,6 +9,7 @@ # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) +my $loaded; BEGIN { $| = 1; print "1..9\n"; } END {print "not ok 1\n" unless $loaded;} use Clone::PP qw( clone ); @@ -25,7 +29,7 @@ # use Storable qw( dclone ); $^W = 0; -$test = 2; +my $test = 2; sub ok { printf("ok %d\n", $test++); } sub not_ok { printf("not ok %d\n", $test++); } @@ -49,7 +53,7 @@ { my $self = shift; printf("not ") if $ok; - printf("ok %d\n", $::test++); + printf("ok %d\n", $test++); } package main; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/dclone.t new/Clone-PP-1.09/t/dclone.t --- old/Clone-PP-1.08/t/dclone.t 2017-04-10 22:00:51.000000000 +0200 +++ new/Clone-PP-1.09/t/dclone.t 2026-09-13 16:20:00.000000000 +0200 @@ -1,4 +1,6 @@ #!./perl +use strict; +use warnings; # $Id: dclone.t,v 0.11 2001/07/29 19:31:05 ray Exp $ # @@ -47,21 +49,22 @@ print "1..9\n"; -$a = 'toto'; -$b = \$a; -$c = bless {}, CLASS; +my $a = 'toto'; +my $b = \$a; +my $c = bless {}, 'CLASS'; $c->{attribute} = 'attrval'; -%a = ('key', 'value', 1, 0, $a, $b, 'cvar', \$c); -@a = ('first', undef, 3, -4, -3.14159, 456, 4.5, - $b, \$a, $a, $c, \$c, \%a); +my %a = ('key', 'value', 1, 0, $a, $b, 'cvar', \$c); +my @a = ('first', undef, 3, -4, -3.14159, 456, 4.5, + $b, \$a, $a, $c, \$c, \%a); +my $aref; print "not " unless defined ($aref = clone(\@a)); print "ok 1\n"; -$dumped = &dump(\@a); +my $dumped = &dump(\@a); print "ok 2\n"; -$got = &dump($aref); +my $got = &dump($aref); print "ok 3\n"; # print $got; @@ -71,17 +74,19 @@ print "not " unless $got eq $dumped; print "ok 4\n"; -package FOO; @ISA = qw(Clone::PP); +package FOO; +our @ISA = qw(Clone::PP); sub make { - my $self = bless {}; - $self->{key} = \%main::a; - return $self; + my $self = bless {}; + $self->{key} = \%a; + return $self; }; package main; -$foo = FOO->make; +my $foo = FOO->make; +my $r; print "not " unless defined($r = $foo->clone); print "ok 5\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/dump.pl new/Clone-PP-1.09/t/dump.pl --- old/Clone-PP-1.08/t/dump.pl 2020-10-20 12:47:02.000000000 +0200 +++ new/Clone-PP-1.09/t/dump.pl 2026-09-13 16:20:00.000000000 +0200 @@ -10,32 +10,32 @@ ;# sub ok { - my ($num, $ok) = @_; - print "not " unless $ok; - print "ok $num\n"; + my ($num, $ok) = @_; + print "not " unless $ok; + print "ok $num\n"; } package dump; use Carp; %dump = ( - 'SCALAR' => 'dump_scalar', - 'ARRAY' => 'dump_array', - 'HASH' => 'dump_hash', - 'REF' => 'dump_ref', - 'CODE' => 'dump_code', + 'SCALAR' => 'dump_scalar', + 'ARRAY' => 'dump_array', + 'HASH' => 'dump_hash', + 'REF' => 'dump_ref', + 'CODE' => 'dump_code', ); # Given an object, dump its transitive data closure sub main::dump { - my ($object) = @_; - croak "Not a reference!" unless ref($object); - local %dumped; - local %object; - local $count = 0; - local $dumped = ''; - &recursive_dump($object, 1); - return $dumped; + my ($object) = @_; + croak "Not a reference!" unless ref($object); + local %dumped; + local %object; + local $count = 0; + local $dumped = ''; + &recursive_dump($object, 1); + return $dumped; } # This is the root recursive dumping routine that may indirectly be @@ -45,109 +45,109 @@ # address is not to be dumped in the %dumped table since it's not a # user-visible object. sub recursive_dump { - my ($object, $link) = @_; + my ($object, $link) = @_; - # Get something like SCALAR(0x...) or TYPE=SCALAR(0x...). - # Then extract the bless, ref and address parts of that string. + # Get something like SCALAR(0x...) or TYPE=SCALAR(0x...). + # Then extract the bless, ref and address parts of that string. - my $what = "$object"; # Stringify - my ($bless, $ref, $addr) = $what =~ /^(\w+)=(\w+)\((0x.*)\)$/; - ($ref, $addr) = $what =~ /^(\w+)\((0x.*)\)$/ unless $bless; + my $what = "$object"; # Stringify + my ($bless, $ref, $addr) = $what =~ /^(\w+)=(\w+)\((0x.*)\)$/; + ($ref, $addr) = $what =~ /^(\w+)\((0x.*)\)$/ unless $bless; - # Special case for references to references. When stringified, - # they appear as being scalars. However, ref() correctly pinpoints - # them as being references indirections. And that's it. + # Special case for references to references. When stringified, + # they appear as being scalars. However, ref() correctly pinpoints + # them as being references indirections. And that's it. - $ref = 'REF' if ref($object) eq 'REF'; + $ref = 'REF' if ref($object) eq 'REF'; - # Make sure the object has not been already dumped before. - # We don't want to duplicate data. Retrieval will know how to - # relink from the previously seen object. + # Make sure the object has not been already dumped before. + # We don't want to duplicate data. Retrieval will know how to + # relink from the previously seen object. - if ($link && $dumped{$addr}++) { - my $num = $object{$addr}; - $dumped .= "OBJECT #$num seen\n"; - return; - } + if ($link && $dumped{$addr}++) { + my $num = $object{$addr}; + $dumped .= "OBJECT #$num seen\n"; + return; + } - my $objcount = $count++; - $object{$addr} = $objcount; + my $objcount = $count++; + $object{$addr} = $objcount; - # Call the appropriate dumping routine based on the reference type. - # If the referenced was blessed, we bless it once the object is dumped. - # The retrieval code will perform the same on the last object retrieved. + # Call the appropriate dumping routine based on the reference type. + # If the referenced was blessed, we bless it once the object is dumped. + # The retrieval code will perform the same on the last object retrieved. - croak "Unknown simple type '$ref'" unless defined $dump{$ref}; + croak "Unknown simple type '$ref'" unless defined $dump{$ref}; - &{$dump{$ref}}($object); # Dump object - &bless($bless) if $bless; # Mark it as blessed, if necessary + &{$dump{$ref}}($object); # Dump object + &bless($bless) if $bless; # Mark it as blessed, if necessary - $dumped .= "OBJECT $objcount\n"; + $dumped .= "OBJECT $objcount\n"; } # Indicate that current object is blessed sub bless { - my ($class) = @_; - $dumped .= "BLESS $class\n"; + my ($class) = @_; + $dumped .= "BLESS $class\n"; } # Dump single scalar sub dump_scalar { - my ($sref) = @_; - my $scalar = $$sref; - unless (defined $scalar) { - $dumped .= "UNDEF\n"; - return; - } - my $len = length($scalar); - $dumped .= "SCALAR len=$len $scalar\n"; + my ($sref) = @_; + my $scalar = $$sref; + unless (defined $scalar) { + $dumped .= "UNDEF\n"; + return; + } + my $len = length($scalar); + $dumped .= "SCALAR len=$len $scalar\n"; } # Dump array sub dump_array { - my ($aref) = @_; - my $items = 0 + @{$aref}; - $dumped .= "ARRAY items=$items\n"; - foreach $item (@{$aref}) { - unless (defined $item) { - $dumped .= 'ITEM_UNDEF' . "\n"; - next; - } - $dumped .= 'ITEM '; - &recursive_dump(\$item, 1); - } + my ($aref) = @_; + my $items = 0 + @{$aref}; + $dumped .= "ARRAY items=$items\n"; + foreach $item (@{$aref}) { + unless (defined $item) { + $dumped .= 'ITEM_UNDEF' . "\n"; + next; + } + $dumped .= 'ITEM '; + &recursive_dump(\$item, 1); + } } # Dump hash table sub dump_hash { - my ($href) = @_; - my $items = scalar(keys %{$href}); - $dumped .= "HASH items=$items\n"; - foreach $key (sort keys %{$href}) { - $dumped .= 'KEY '; - &recursive_dump(\$key, undef); - unless (defined $href->{$key}) { - $dumped .= 'VALUE_UNDEF' . "\n"; - next; - } - $dumped .= 'VALUE '; - &recursive_dump(\$href->{$key}, 1); - } + my ($href) = @_; + my $items = scalar(keys %{$href}); + $dumped .= "HASH items=$items\n"; + foreach $key (sort keys %{$href}) { + $dumped .= 'KEY '; + &recursive_dump(\$key, undef); + unless (defined $href->{$key}) { + $dumped .= 'VALUE_UNDEF' . "\n"; + next; + } + $dumped .= 'VALUE '; + &recursive_dump(\$href->{$key}, 1); + } } # Dump reference to reference sub dump_ref { - my ($rref) = @_; - my $deref = $$rref; # Follow reference to reference - $dumped .= 'REF '; - &recursive_dump($deref, 1); # $dref is a reference + my ($rref) = @_; + my $deref = $$rref; # Follow reference to reference + $dumped .= 'REF '; + &recursive_dump($deref, 1); # $dref is a reference } # Dump code sub dump_code { - my ($sref) = @_; - $dumped .= "CODE\n"; + my ($sref) = @_; + $dumped .= "CODE\n"; } 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Clone-PP-1.08/t/tied.pl new/Clone-PP-1.09/t/tied.pl --- old/Clone-PP-1.08/t/tied.pl 2017-04-10 22:00:51.000000000 +0200 +++ new/Clone-PP-1.09/t/tied.pl 2026-09-13 16:20:00.000000000 +0200 @@ -40,65 +40,65 @@ package TIED_HASH; sub TIEHASH { - my $self = bless {}, shift; - return $self; + my $self = bless {}, shift; + return $self; } sub FETCH { - my $self = shift; - my ($key) = @_; - $main::hash_fetch++; - return $self->{$key}; + my $self = shift; + my ($key) = @_; + $main::hash_fetch++; + return $self->{$key}; } sub STORE { - my $self = shift; - my ($key, $value) = @_; - $self->{$key} = $value; + my $self = shift; + my ($key, $value) = @_; + $self->{$key} = $value; } sub FIRSTKEY { - my $self = shift; - scalar keys %{$self}; - return each %{$self}; + my $self = shift; + scalar keys %{$self}; + return each %{$self}; } sub NEXTKEY { - my $self = shift; - return each %{$self}; + my $self = shift; + return each %{$self}; } sub CLEAR { - %$self = (); + %$self = (); } package TIED_ARRAY; sub TIEARRAY { - my $self = bless [], shift; - return $self; + my $self = bless [], shift; + return $self; } sub FETCH { - my $self = shift; - my ($idx) = @_; - $main::array_fetch++; - return $self->[$idx]; + my $self = shift; + my ($idx) = @_; + $main::array_fetch++; + return $self->[$idx]; } sub STORE { - my $self = shift; - my ($idx, $value) = @_; - $self->[$idx] = $value; + my $self = shift; + my ($idx, $value) = @_; + $self->[$idx] = $value; } sub FETCHSIZE { - my $self = shift; - return @{$self}; + my $self = shift; + return @{$self}; } sub CLEAR { - @$self = (); + @$self = (); } sub EXTEND { } @@ -106,25 +106,25 @@ package TIED_SCALAR; sub TIESCALAR { - my $scalar; - my $self = bless \$scalar, shift; - return $self; + my $scalar; + my $self = bless \$scalar, shift; + return $self; } sub FETCH { - my $self = shift; - $main::scalar_fetch++; - return $$self; + my $self = shift; + $main::scalar_fetch++; + return $$self; } sub STORE { - my $self = shift; - my ($value) = @_; - $$self = $value; + my $self = shift; + my ($value) = @_; + $$self = $value; } sub CLEAR { - $$self = (); + $$self = (); } 1; ++++++ README.md ++++++ ## Build Results Current state of perl in openSUSE:Factory is  The current state of perl in the devel project build (devel:languages:perl)  ++++++ _scmsync.obsinfo ++++++ mtime: 1789466906 commit: 27841faf5571b465419d8ff1da77af200eac39a9ba1163d2cf1b7affc7f3f2e9 url: https://src.opensuse.org/perl/perl-Clone-PP revision: 27841faf5571b465419d8ff1da77af200eac39a9ba1163d2cf1b7affc7f3f2e9 projectscmsync: https://src.opensuse.org/perl/_ObsPrj ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-09-15 12:08:26.000000000 +0200 @@ -0,0 +1 @@ +.osc
