XS code can usually be made to work with any platform, but libraries and header files might not be readily available, or the XS code itself might be platform specific. If the libraries and headers are portable, then it's a reasonable guess that the XS code can be made portable as well.
A different type of portability issue arises when writing XS code: the availability of a C compiler on the end user's platform. C brings with it its own portability issues, and writing XS code will expose you to some of those. Writing in pure Perl is an easier way to achieve portability because Perl's configuration process goes through extreme agonies to hide C's portability blemishes from you.[2]
[2] Some people on the margins of society run Perl's Configure script as a cheap form of entertainment. People have even been known to stage "Configure races", between competing systems and wager large sums on them. This practice is now outlawed in most of the civilized world.
Copyright © 2002 O'Reilly & Associates. All rights reserved.