From: Wolfgang Bumiller Date: Tue, 19 Nov 2019 08:49:07 +0000 (+0100) Subject: avoid cyclic reference in closure X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=0dd5686aef98a8ebec398d34a72f6cc228886186 avoid cyclic reference in closure Signed-off-by: Wolfgang Bumiller --- diff --git a/src/PVE/CLIHandler.pm b/src/PVE/CLIHandler.pm index 7e87a40..86c90fb 100644 --- a/src/PVE/CLIHandler.pm +++ b/src/PVE/CLIHandler.pm @@ -2,7 +2,9 @@ package PVE::CLIHandler; use strict; use warnings; + use JSON; +use Scalar::Util qw(weaken); use PVE::SafeSyslog; use PVE::Exception qw(raise raise_param_exc); @@ -198,8 +200,8 @@ sub generate_usage_str { my ($subcmd, $def, undef, undef, $cmdstr) = resolve_cmd($cmd); - my $generate; - $generate = sub { + my $generate_weak; + $generate_weak = sub { my ($indent, $separator, $def, $prefix) = @_; my $str = ''; @@ -223,7 +225,7 @@ sub generate_usage_str { } else { next if $def->{$cmd}->{alias}; - my $substr = $generate->($indent, '', $def->{$cmd}, "$prefix $cmd"); + my $substr = $generate_weak->($indent, '', $def->{$cmd}, "$prefix $cmd"); if ($substr) { $substr .= $separator if $substr !~ /\Q$separator\E{2}/; $str .= $substr; @@ -240,6 +242,8 @@ sub generate_usage_str { } return $str; }; + my $generate = $generate_weak; + weaken($generate_weak); return $generate->($indent, $separator, $def, $cmdstr); }