Subject: | Data::Type requires IO::Extended 0.06 but 'use' statement does not specify a specific version |
Data::Type 0.01.15 uses IO::Extended, expecting it to export the function warnfln. warnfln was added to IO::Extended in v0.06, but when Data::Type uses IO::Extended, it does not specify a minimum version. If you have IO::Extended 0.05 or earlier installed, loading Data::Type succeeds but 'perl -c' reports the following error:
String found where operator expected at /tmp/53pr1Wnbw6/Data-Type-0.01.15/blib/lib/Data/Type.pm line 731, near "warnfln "codegen if $p eq $prefix""
(Do you need to predeclare warnfln?)
This error is somewhat ambiguous and took me some time to track down.
In the next release, Data::Type should specify that it requires IO::Extended 0.06 or higher. With this change, the error reported would be much more clear:
IO::Extended version 0.06 required--this is only version 0.05 at Type.pm line 27.
BEGIN failed--compilation aborted at Type.pm line 27.
Thanks.