
![]() | ![]() |
0.3. Platform Notes
This book was developed using Perl release v5.8.1. That means major
release 5, minor release 8, and patch level 1. We tested most
programs and examples under BSD, Linux, and SunOS, but that doesn't
mean they'll work only on those systems. Perl was
designed for platform independence. When you use
Perl as a general-purpose programming language, employing basic
operations like variables, patterns, subroutines, and high-level I/O,
your program should work the same everywhere that Perl
runs—which is just about everywhere. The first two-thirds of
this book uses Perl for general-purpose programming.Perl was originally conceived as a high-level, cross-platform
language for systems programming. Although it has long since expanded
beyond its original domain, Perl continues to be heavily used for
systems programming, both on its native Unix systems and elsewhere.
Most recipes in Chapter 14 through Chapter 18 deal with classic systems programming. For
maximum portability in this area, we've mainly focused on open
systems as defined by the Portable Operating System Interface
(POSIX), which includes nearly every form of Unix and numerous other
systems as well. Most recipes should run with little or no
modification on any POSIX system.
You can still use Perl for systems programming work even on non-POSIX
systems by using vendor-specific modules, but these are not covered
in this book. That's because they're not portable—and to be
perfectly forward, because we have no such systems at our disposal.
Consult the documentation that came with your port of Perl for any
proprietary modules that may have been included. The
perlport(1) manpage is a good start; its SEE
ALSO section points to per-platform documentation, such as
perlmacos(1) and
perlvms(1).But don't worry. Many recipes for systems programming should work on
non-POSIX systems as well, especially those dealing with databases,
networking, and web interaction. That's because the modules used for
those areas hide platform dependencies. The principal exception is
those few recipes and programs that rely upon multitasking
constructs, notably the powerful fork function,
standard on POSIX systems, but seldom on others. Mac OS X now
supports fork natively, however, and even on
Windows systems Perl now emulates that syscall remarkably well.When we needed structured files, we picked the convenient Unix
/etc/passwd database; when we needed a text file
to read, we picked /etc/motd; and when we needed
a program to produce output, we picked who(1).
These were merely chosen to illustrate the principles—the
principles work whether or not your system has these files and
programs.
![]() | ![]() | ![]() |
0.2. What's New in This Edition | ![]() | 0.4. Other Books |

Copyright © 2003 O'Reilly & Associates. All rights reserved.