From 9baa246cc16b03dcc8354a141d54bb5c40fb99b1 Mon Sep 17 00:00:00 2001 From: Niko Tyni Date: Tue, 26 Apr 2016 17:34:51 -0400 Subject: [PATCH 1/1] corelist: silence deep recursion warning with %version --- dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm | 3 +++ dist/Module-CoreList/t/corelist.t | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm b/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm index 94507d7..c58bc4c 100644 --- a/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm +++ b/dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm @@ -48,6 +48,9 @@ sub FIRSTKEY { my ($self) = @_; if (not $self->{keys_inflated}) { + # exceeds the warning limit of 100 calls since 5.23.2 + no warnings 'recursion'; + # This inflates the whole set of hashes... Somewhat expensive, but saves # many tied hash calls later. my @parent_keys; diff --git a/dist/Module-CoreList/t/corelist.t b/dist/Module-CoreList/t/corelist.t index db09f48..4adbbe9 100644 --- a/dist/Module-CoreList/t/corelist.t +++ b/dist/Module-CoreList/t/corelist.t @@ -1,7 +1,7 @@ #!perl -w use strict; use Module::CoreList; -use Test::More tests => 32; +use Test::More tests => 34; BEGIN { require_ok('Module::CoreList'); } @@ -105,6 +105,12 @@ is(Module::CoreList::removed_from('CPANPLUS::inc'), 5.010001, cmp_ok($warnings_count, '==', 0, "an undefined version does not produce warnings rt#123556"); + + ok(keys %{$Module::CoreList::version{5.023002}} > 0, + "have recent enough data to test for deep recursion warnings"); + + cmp_ok($warnings_count, '==', 0, + "no deep recursion warnings for newer perl versions"); } ok(! defined(Module::CoreList->find_version()), -- 1.8.3.1