In short, unless you test it yourself, there is not much telling of whether any given module will work as expected under Win32 or not.

As a rule of thumb, if a module has a Pure Perl implementation, it will most likely work, if it makes no stupid assumptions about the file system and does not rely itself on platform specific modules or relies on sufficiently many and diverse platform specific modules, one for each platform.

Modules are distributed for Win32 in the normal CPAN fashion, but it is common for binary modules to be distributed prepackaged in ppm files plus archives, because relatively few installations of Win32 have a C compiler available.

cygwin is no cure here, as the cygwin Perl only works well with the other cygwin programs, and the predominant method of getting Perl for Win32 is to compile a native Perl for Win32 instead some crutch that ports over the GNU utilities and a badly done vestige of Unix.

Most of the problems of installation can be solved by installing the proper make program, for most cases, this is nmake.exe, from Microsoft.

If you plan to distribute to users on Win32, plan to have at least one machine in your test setup to be Win32 as well.

Your specific choice of modules seems a bit narrow-minded to me, as Term::Readline is a module which uses whatever readline functionality is available on the system, whereas Term::Readline::Gnu requires the GNU Readline library to be installed. In most cases, going with the less specific alternative or providing an adequate fallback if a module is not available will be a good way to get your program to run on a platform.

PodMaster has been, for a long time, providing Win32 ports, and I am quite sure he will share his knowledge of porting libraries and producing PPM files with you if you ask him.


In reply to Re: Help with porting issues to Win32 by Corion
in thread Help with porting issues to Win32 by PetaMem

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.