If the perl bindings introduce an explicit close API, it will no longer be safe to rely on object destruction to call cleanup code. For example, if a program creates a temporary directory which must persist for the duration of the program but must be cleaned up prior to exit, the program cannot rely on a destructor to do the cleanup as the handle may have been closed before the destructor is executed. A solution to this would be to allow callbacks to be registered and executed immediately prior to close(). For example: $g->pre_close(sub { $g->rmdir($self->{foo}); });
See my reply here: https://www.redhat.com/archives/libguestfs/2010-June/msg00096.html
Matt, what's the current status of this one? If virt-v2v no longer needs it, then we should close it. If there is still pain for virt-v2v then we should leave it open, but see also comment 1 about how hard it is to solve it.
I worked round it with GuestfsHandle, so i don't need this any more.