use strict;
use warnings;
+
use JSON;
+use Scalar::Util qw(weaken);
use PVE::SafeSyslog;
use PVE::Exception qw(raise raise_param_exc);
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 = '';
} 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;
}
return $str;
};
+ my $generate = $generate_weak;
+ weaken($generate_weak);
return $generate->($indent, $separator, $def, $cmdstr);
}