There's definitely a doc_smell here, but could the part I've emphasized (from perldoc DateTime:Duration) the documentation for this problem?
$dur->in_units( ... )
Returns the length of the duration in the units (any of those that can
be passed to "new") given as arguments. All lengths are integral, but
may be negative. Smaller units are computed from what remains after
taking away the larger units given, so for example:
my $dur = DateTime::Duration->new( years => 1, months => 15 );
$dur->in_units( 'years' ); # 2
$dur->in_units( 'months' ); # 27
$dur->in_units( 'years', 'months' ); # (2, 3)
$dur->in_units( 'weeks', 'days' ); # (0, 0) !
The last example demonstrates that there will not be any conversion
between units which don't have a fixed conversion rate.
The only conversions possible are:
* years <=> months
* weeks <=> days
* hours <=> minutes
* seconds <=> nanoseconds
For the explanation of why this is the case, please see the How DateTime
Math Works section of the DateTime.pm documentation
My speculation here seems almost non-sensical ... except for the module author's repeated comment, "...if you are trying to generate output suitable for humans, use the "DateTime::Format::Duration" module."