In theory, Pinto could be used to manage dependencies of any type.
Not sure this is wortwhile but, here goes...
Terminology
Archive : The physical file that you contains your release
Module : A component within the Archive that other archives may depend on
In Perl, a Module is a package. But it could be something else in
Java or Ruby or whatever. It just has to have a unique name and
version. (Question: could there be separate namespaces for each
language?)
For each flavor of archive (Perl dist, Java jar, Ruby Gem, etc) need a
separate extractor that knows how to find the modules that are
provided and required by the archive.
Also:
Look at the Pin-Priority feature of Debian for an example of
how they manage pins.