|Perl: the Markov chain saw|
Something in my lawyer's mind says me that a module not explicitly under GPL, cannot become GPLed because it uses or otherwise links (statically or dynamically) to another GPLed module.
Suppose the license on some module "A" requires that all other programs, modules, libraries, ... must be under a similar license if they make use of module "A".
What would be the sanction if some module "B", explicitly or implicitly, does not obey this rule?
It would mean --IMHO-- that module "B" makes illegal use of module "A", but not that module "B" would get automatically tainted by the license of module "A". The effects of not obeying the rules of the license of module "A" would most probably mean that you are not allowed to use module "A" (but the licensing rules might provide otherwise: they could e.g. provide that you now have to pay a fee to the author of module "A").
The GPLv3 says:
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). It doesn't say: your work is now virally infected by GPL, whether or not you include the GPL in your work.
So to summarize: the "failure" of the author of Sort::Topological to add a GPL sort of license, does not allow you to assume that it somehow, somewhere attracted a GPL form of license, even if the author was under an obligation to GPL his code. If he erroneously didn't, that is his mistake, but you cannot remedy that by adding or assuming the existence of a GPL license yourself. I'm afraid your lawyers were right in saying "no".
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James