http://qs321.pair.com?node_id=11106839

Lotus1 has asked for the wisdom of the Perl Monks concerning the following question:

Edit: I apologize for not making the OP clearer. I tried to show the steps I took but should have put my question and a short explanation at the top of such a long post. I added bold text above. I'll be using Inkscape to solve my immediate problem so this thread can just be ignored unless anyone is interested in creating CAD documents with Perl.

I would like to write a script to create some simple 2D Autocad drawings and save to DXF or .dwg format. I found a module, CAD::Drawing, that seems seemed to do exactly that but I'm having trouble installing it installing it is a waste of time since the module has been broken for 5 years and the openDWG toolkit needed to create DWG/DXF files is not available. The first complaint from the build was that ImageMagick was missing. After struggling to get the correct version of the Imagemagick binaries installed correctly on Windows I found out about Strawberry Perl's PPM command and I was able to quickly install an ImageMagick bundle.

The required Stream module has been broken for years and the author has died.The next roadblock was a module called Stream::FileInputStream. This module won't install on Strawberry Perl 5.30 64 bit due to changes in the POSIX module. They have removed the POSIX::tmpnam() function and given a note that people should use File::Temp instead.

I was able to get Stream to install (but it is irrelevant) by patching the lines in c:\strawberry\cpan\build\Stream-1.00-1\test.pl that used POSIX::tmpnam(). In package main I added use File::Temp qw/ :POSIX /;.

package main; use Stream::IO; use POSIX; use Carp; use File::Temp qw/ :POSIX /;

Then in both places where POSIX::tmpnam() is used I replaced it with just tmpnam().

#my $tmpfile = POSIX::tmpnam(); my $tmpfile = tmpnam();

After that I could do gmake test and gmake install from the command prompt in c:\strawberry\cpan\build\Stream-1.00-1.

When I tried again to install CAD::Drawing there were lots of errors as shown below. After all this work I discovered that the standard installation for CAD::Drawing doesn't include the IO modules needed to create Autocad output files. You are required to download the OpenDWG toolkit seperately. The POD for CAD::Drawing does not mention the missing tools. The examples show writing to DXF output files but don't mention the dependancy until you read the POD for CAD::Drawing::IO::OpenDWG.

The POD for CAD::Drawing::IO::OpenDWG says "CAD::Drawing::IO::OpenDWG - Accessor methods for OpenDWG toolkit wrapper"

I found that the toolkit is no longer opensource at https://www.opendesign.com/pricing. It appears that there is an old open source version still available at https://sourceforge.net/projects/opendwg/ but it appears to me that it needs to be built from C/C++.

There is a GNU project called LibreDWG that is intended to recreate this library but CAD::Drawing has not been updated in many years. I don't know if LibreDWG would be a drop-in replacement for OpenDWG.

I'm considering trying to take over maintenance of this module in order to update the documentation and add a request for someone to update the module to use the new GNU toolkit. The Stream module hasn't been updated since 1996 and the author seems to have died from what I could find out about him in a web search. The Stream module could use some updates as well.

I found a Python module called dxfwrite that seems to be a pure Python solution that doesn't need external applications such as Image Magick. It doesn't have all the advanced features the CAD::Drawing provides but it can create basic drawings. 'dxfwrite' seems like it would be simple to port to Perl. If I understood Python (and Perl) better I would try it. If a good Perl hacker would set up a Perl skeleton with stubs for the various Python files to be converted I bet a lot of us could contribute by converting the Python files into the Perl stubs.

For my CAD project I'll likely just create SVG drawings with Perl and then call Inkscape to convert them to DXF. I haven't tested that yet so if I can't get that working I'll likely use the Python module and put my budding Python skills to work.

Does anyone have suggestions on how to create basic Autocad files from Perl?

Here is the CPAN output of the CAD::Drawing build after installing ImageMagic and the Stream modules:

Loading internal logger. Log::Log4perl recommended for better logging CPAN: CPAN::SQLite loaded ok (v0.217) Database was generated on Mon, 23 Sep 2019 03:48:59 GMT Running install for module 'CAD::Drawing' CPAN: Digest::SHA loaded ok (v6.02) CPAN: Compress::Zlib loaded ok (v2.086) Checksum for C:\STRAWB~1\cpan\sources\authors\id\E\EW\EWILHELM\CAD-Dra +wing-0.26.tar.gz ok CPAN: Archive::Tar loaded ok (v2.32) CPAN: YAML::XS loaded ok (v0.78) CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v2.150010) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::Build loaded ok (v0.4229) Configuring E/EW/EWILHELM/CAD-Drawing-0.26.tar.gz with Build.PL Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'CAD-Drawing' version '0.26' EWILHELM/CAD-Drawing-0.26.tar.gz C:\Strawberry\perl\bin\perl.exe Build.PL -- OK Running Build for E/EW/EWILHELM/CAD-Drawing-0.26.tar.gz CPAN: Module::CoreList loaded ok (v5.20190522) Building CAD-Drawing EWILHELM/CAD-Drawing-0.26.tar.gz C:\Strawberry\perl\bin\perl.exe ./Build -- OK Running Build test for EWILHELM/CAD-Drawing-0.26.tar.gz "my" variable $action masks earlier declaration in same statement at C +:\STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm l +ine 292. "my" variable $type masks earlier declaration in same statement at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 294. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +295. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 29 +5. "my" variable $useful masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +296. "my" variable %handlers masks earlier declaration in same scope at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 297. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +297. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 29 +7. "my" variable $mod masks earlier declaration in same scope at C:\STRAW +B~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 297 +. "my" variable $action masks earlier declaration in same statement at C +:\STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm l +ine 297. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 29 +8. "my" variable $mod masks earlier declaration in same scope at C:\STRAW +B~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 298 +. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +300. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 30 +0. "my" variable $mod masks earlier declaration in same scope at C:\STRAW +B~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 300 +. "my" variable $plgindbg masks earlier declaration in same scope at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 301. "my" variable %handlers masks earlier declaration in same scope at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 302. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +302. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 30 +2. # Failed test 'use CAD::Drawing;' # at t\00-load.t line 4. # Tried to use 'CAD::Drawing'. # Error: syntax error at C:\STRAWB~1\cpan\build\CAD-Drawing-0.26- +0\blib\lib/CAD/Drawing/IO.pm line 290, near "$action qw(load save)" # syntax error at C:\STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/C +AD/Drawing/IO.pm line 310, near "else" # BEGIN not safe after errors--compilation aborted at C:\STRAWB~1\cpan +\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 312. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing.pm line 11. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing.pm line 11. # Compilation failed in require at t\00-load.t line 4. # BEGIN failed--compilation aborted at t\00-load.t line 4. # Failed test 'use CAD::Drawing::IO;' # at t\00-load.t line 6. # Tried to use 'CAD::Drawing::IO'. # Error: Attempt to reload CAD/Drawing/IO.pm aborted. # Compilation failed in require at t\00-load.t line 6. # BEGIN failed--compilation aborted at t\00-load.t line 6. # Failed test 'use CAD::Drawing::IO::Compressed;' # at t\00-load.t line 9. # Tried to use 'CAD::Drawing::IO::Compressed'. # Error: Attempt to reload CAD/Drawing.pm aborted. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing/IO/Compressed.pm line 4. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing/IO/Compressed.pm line 4. # Compilation failed in require at t\00-load.t line 9. # BEGIN failed--compilation aborted at t\00-load.t line 9. # Failed test 'use CAD::Drawing::IO::FlatYAML;' # at t\00-load.t line 10. # Tried to use 'CAD::Drawing::IO::FlatYAML'. # Error: Attempt to reload CAD/Drawing.pm aborted. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing/IO/FlatYAML.pm line 4. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing/IO/FlatYAML.pm line 4. # Compilation failed in require at t\00-load.t line 10. # BEGIN failed--compilation aborted at t\00-load.t line 10. # Failed test 'use CAD::Drawing::IO::Split;' # at t\00-load.t line 11. # Tried to use 'CAD::Drawing::IO::Split'. # Error: Attempt to reload CAD/Drawing.pm aborted. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing/IO/Split.pm line 4. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing/IO/Split.pm line 4. # Compilation failed in require at t\00-load.t line 11. # BEGIN failed--compilation aborted at t\00-load.t line 11. # Failed test 'use CAD::Drawing::Manipulate::Graphics;' # at t\00-load.t line 14. # Tried to use 'CAD::Drawing::Manipulate::Graphics'. # Error: Attempt to reload CAD/Drawing.pm aborted. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing/Manipulate/Graphics.pm line 4. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing/Manipulate/Graphics.pm line 4. # Compilation failed in require at t\00-load.t line 14. # BEGIN failed--compilation aborted at t\00-load.t line 14. # Testing CAD::Drawing # Looks like you failed 6 tests of 12. t\00-load.t .......... Dubious, test returned 6 (wstat 1536, 0x600) Failed 6/12 subtests t\01-pod-coverage.t .. skipped: Test::Pod::Coverage 1.04 required for +testing POD coverage t\02-pod.t ........... skipped: $ENV{TEST_POD} is not set t\03-prereq.t ........ skipped: Test::Prereq::Build required to test d +ependencies Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) + at t\basic.t line 39. t\basic.t ............ Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run "my" variable $action masks earlier declaration in same statement at C +:\STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm l +ine 292. "my" variable $type masks earlier declaration in same statement at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 294. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +295. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 29 +5. "my" variable $useful masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +296. "my" variable %handlers masks earlier declaration in same scope at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 297. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +297. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 29 +7. "my" variable $mod masks earlier declaration in same scope at C:\STRAW +B~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 297 +. "my" variable $action masks earlier declaration in same statement at C +:\STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm l +ine 297. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 29 +8. "my" variable $mod masks earlier declaration in same scope at C:\STRAW +B~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 298 +. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +300. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 30 +0. "my" variable $mod masks earlier declaration in same scope at C:\STRAW +B~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 300 +. "my" variable $plgindbg masks earlier declaration in same scope at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 301. "my" variable %handlers masks earlier declaration in same scope at C:\ +STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm lin +e 302. "my" variable $action masks earlier declaration in same scope at C:\ST +RAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line +302. "my" variable $type masks earlier declaration in same scope at C:\STRA +WB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 30 +2. # Failed test 'use CAD::Drawing;' # at t\methods.t line 16. # Tried to use 'CAD::Drawing'. # Error: syntax error at C:\STRAWB~1\cpan\build\CAD-Drawing-0.26- +0\blib\lib/CAD/Drawing/IO.pm line 290, near "$action qw(load save)" # syntax error at C:\STRAWB~1\cpan\build\CAD-Drawing-0.26-0\blib\lib/C +AD/Drawing/IO.pm line 310, near "else" # BEGIN not safe after errors--compilation aborted at C:\STRAWB~1\cpan +\build\CAD-Drawing-0.26-0\blib\lib/CAD/Drawing/IO.pm line 312. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing.pm line 11. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing.pm line 11. # Compilation failed in require at t\methods.t line 16. # BEGIN failed--compilation aborted at t\methods.t line 16. # Failed test 'CAD::Drawing->Clone' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Copy' # at t\methods.t line 23. # Failed test 'CAD::Drawing->CutPline' # at t\methods.t line 23. # Failed test 'CAD::Drawing->EntOrthExtents' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Get' # at t\methods.t line 23. # Failed test 'CAD::Drawing->GroupClone' # at t\methods.t line 23. # Failed test 'CAD::Drawing->GroupCopy' # at t\methods.t line 23. # Failed test 'CAD::Drawing->GroupMirror' # at t\methods.t line 23. # Failed test 'CAD::Drawing->GroupMove' # at t\methods.t line 23. # Failed test 'CAD::Drawing->GroupRotate' # at t\methods.t line 23. # Failed test 'CAD::Drawing->GroupScale' # at t\methods.t line 23. # Failed test 'CAD::Drawing->IntPline' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Mirror' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Move' # at t\methods.t line 23. # Failed test 'CAD::Drawing->NewMat' # at t\methods.t line 23. # Failed test 'CAD::Drawing->OrthExtents' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Rotate' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Scale' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Set' # at t\methods.t line 23. # Failed test 'CAD::Drawing->Transform' # at t\methods.t line 23. # Failed test 'CAD::Drawing->_ocs_axes' # at t\methods.t line 23. # Failed test 'CAD::Drawing->_wcs_axes' # at t\methods.t line 23. # Failed test 'CAD::Drawing->add_fake_ray' # at t\methods.t line 23. # Failed test 'CAD::Drawing->add_x' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addr_by_color' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addr_by_id' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addr_by_layer' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addr_by_regex' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addr_by_type' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addrec' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addtextlines' # at t\methods.t line 23. # Failed test 'CAD::Drawing->addtexttable' # at t\methods.t line 23. # Failed test 'CAD::Drawing->angle_of' # at t\methods.t line 23. # Failed test 'CAD::Drawing->area' # at t\methods.t line 23. # Failed test 'CAD::Drawing->build_matrix' # at t\methods.t line 23. # Failed test 'CAD::Drawing->can_load' # at t\methods.t line 23. # Failed test 'CAD::Drawing->diskaction' # at t\methods.t line 23. # Failed test 'CAD::Drawing->divide' # at t\methods.t line 23. # Failed test 'CAD::Drawing->drw_to_img' # at t\methods.t line 23. # Failed test 'CAD::Drawing->fit_to_bound' # at t\methods.t line 23. # Failed test 'CAD::Drawing->flatten' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getAddrByColor' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getAddrByLayer' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getAddrByRegex' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getAddrByType' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getEntPoints' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getExtentsRec' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getImgByName' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getLayerList' # at t\methods.t line 23. # Failed test 'CAD::Drawing->get_clip_points' # at t\methods.t line 23. # Failed test 'CAD::Drawing->get_image_rectangle' # at t\methods.t line 23. # Failed test 'CAD::Drawing->get_world_clip_points' # at t\methods.t line 23. # Failed test 'CAD::Drawing->get_world_image_rectangle' # at t\methods.t line 23. # Failed test 'CAD::Drawing->getobj' # at t\methods.t line 23. # Failed test 'CAD::Drawing->img_to_drw' # at t\methods.t line 23. # Failed test 'CAD::Drawing->intersect_pgon' # at t\methods.t line 23. # Failed test 'CAD::Drawing->is_persistent' # at t\methods.t line 23. # Failed test 'CAD::Drawing->list_layers' # at t\methods.t line 23. # Failed test 'CAD::Drawing->load' # at t\methods.t line 23. # Failed test 'CAD::Drawing->new' # at t\methods.t line 23. # Failed test 'CAD::Drawing->offset' # at t\methods.t line 23. # Failed test 'CAD::Drawing->outloop' # at t\methods.t line 23. # Failed test 'CAD::Drawing->place' # at t\methods.t line 23. # Failed test 'CAD::Drawing->pline_to_ray' # at t\methods.t line 23. # Failed test 'CAD::Drawing->pointmirror' # at t\methods.t line 23. # Failed test 'CAD::Drawing->pointrotate' # at t\methods.t line 23. # Failed test 'CAD::Drawing->remove' # at t\methods.t line 23. # Failed test 'CAD::Drawing->rotation_matrices' # at t\methods.t line 23. # Failed test 'CAD::Drawing->save' # at t\methods.t line 23. # Failed test 'CAD::Drawing->scaling_matrix' # at t\methods.t line 23. # Failed test 'CAD::Drawing->select_addr' # at t\methods.t line 23. # Failed test 'CAD::Drawing->setdefaults' # at t\methods.t line 23. # Failed test 'CAD::Drawing->to_ocs' # at t\methods.t line 23. # Failed test 'CAD::Drawing->to_wcs' # at t\methods.t line 23. # Failed test 'CAD::Drawing->transform_pt' # at t\methods.t line 23. # Failed test 'CAD::Drawing->translation_matrix' # at t\methods.t line 23. # Failed test 'CAD::Drawing->trim_both' # at t\methods.t line 23. # Failed test 'use CAD::Drawing::Manipulate::Graphics;' # at t\methods.t line 34. # Tried to use 'CAD::Drawing::Manipulate::Graphics'. # Error: Attempt to reload CAD/Drawing.pm aborted. # Compilation failed in require at C:\STRAWB~1\cpan\build\CAD-Drawing- +0.26-0\blib\lib/CAD/Drawing/Manipulate/Graphics.pm line 4. # BEGIN failed--compilation aborted at C:\STRAWB~1\cpan\build\CAD-Draw +ing-0.26-0\blib\lib/CAD/Drawing/Manipulate/Graphics.pm line 4. # Compilation failed in require at t\methods.t line 34. # BEGIN failed--compilation aborted at t\methods.t line 34. # Failed test '...Graphics::image_crop' # at t\methods.t line 40. # Failed test '...Graphics::image_init' # at t\methods.t line 40. # Failed test '...Graphics::image_rotate' # at t\methods.t line 40. # Failed test '...Graphics::image_scale' # at t\methods.t line 40. # Failed test '...Graphics::image_swap_context' # at t\methods.t line 40. # Looks like you failed 84 tests of 95. t\methods.t .......... Dubious, test returned 84 (wstat 21504, 0x5400) Failed 84/95 subtests Test Summary Report ------------------- t\00-load.t (Wstat: 1536 Tests: 12 Failed: 6) Failed tests: 1, 3, 6-8, 11 Non-zero exit status: 6 t\basic.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t\methods.t (Wstat: 21504 Tests: 95 Failed: 84) Failed tests: 1-25, 32-37, 39-85, 90-95 Non-zero exit status: 84 Files=6, Tests=107, 3 wallclock secs ( 0.08 usr + 0.03 sys = 0.11 C +PU) Result: FAIL Failed 3/6 test programs. 90/107 subtests failed. EWILHELM/CAD-Drawing-0.26.tar.gz C:\Strawberry\perl\bin\perl.exe ./Build test -- NOT OK //hint// to see the cpan-testers results for installing this module, t +ry: reports EWILHELM/CAD-Drawing-0.26.tar.gz Stopping: 'install' failed for 'CAD::Drawing'.