sub _remove_snap { my ( $vm ) = @_; # skip if no snapshots on vm unless ( defined $vm->snapshot ) { print $vm->name . " has no snapshots, skipping\n"; return; } my $snaps = _find_snapname( $vm->snapshot->currentSnapshot, $vm->snapshot->rootSnapshotList ); print Dumper $snaps; } sub _find_snapname { my ( $ref, $tree ) = @_; my $counter = 0; my @snaps; foreach my $node (@$tree) { # print $node->name, "\t" . $node->createTime . "\n"; if ( $node->name eq $snapname ) { push @snaps, $node } _find_snapname( $ref, $node->childSnapshotList ); } print Dumper @snaps; return \@snaps; }