Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
Cyber Angels

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 79 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       This document briefly describes perl under Mac OS X.


       The latest Perl (5.8.1-RC3 as of this writing) builds
       without changes under Mac OS X. Under the 10.3 "Panther"
       release, all self-tests pass, and all standard features
       are supported.

       Earlier Mac OS X releases did not include a completely
       thread-safe libc, so threading is not fully supported.
       Also, earlier releases included a somewhat buggy libdb, so
       some of the DB_File tests are known to fail on those

       Installation Prefix

       The default installation location for this release uses
       the traditional UNIX directory layout under /usr/local.
       This is the recommended location for most users, and will
       leave the Apple-supplied Perl and its modules undisturbed.

       Using an installation prefix of '/usr' will result in a
       directory layout that mirrors that of Apple's default
       Perl, with core modules stored in '/Sys­
       tem/Library/Perl/${version}', CPAN modules stored in
       '/Library/Perl/${version}', and the addition of '/Net­
       work/Library/Perl/${version}' to @INC for modules that are
       stored on a file server and used by many Macs.

       libperl and Prebinding

       Mac OS X ships with a dynamically-loaded libperl, but the
       default for this release is to compile a static libperl.
       The reason for this is pre-binding. Dynamic libraries can
       be pre-bound to a specific address in memory in order to
       decrease load time. To do this, one needs to be aware of
       the location and size of all previously-loaded libraries.
       Apple collects this information as part of their overall
       OS build process, and thus has easy access to it when
       building Perl, but ordinary users would need to go to a
       great deal of effort to obtain the information needed for

       You can override the default and build a shared libperl if
       you wish (Configure ... -Duseshrlib), but the load time
       will be significantly greater than either the static
       library, or Apple's pre-bound dynamic library.

       Updating Panther

       As of this writing, the latest Perl release that has been

       If you find that you do need to update the system Perl,
       there is one potential issue. If you upgrade using the
       default static libperl, you will find that the dynamic
       libperl supplied by Apple will not be deleted. If both
       libraries are present when an application that links
       against libperl is built, ld will link against the dynamic
       library by default. So, if you need to replace Apple's
       dynamic libperl with a static libperl, you need to be sure
       to delete the older dynamic library after you've installed
       the update.

       Note that this is only an issue when updating from an
       older build of the same Perl version. If you're updating
       from (for example) 5.8.1 to 5.8.2, this issue won't affect

       Known problems

       If you have installed extra libraries such as GDBM through
       Fink (in other words, you have libraries under /sw/lib),
       or libdlcompat to /usr/local/lib, you may need to be extra
       careful when running Configure to not to confuse Configure
       and Perl about which libraries to use.  Being confused
       will show up for example as "dyld" errors about symbol
       problems, for example during "make test". The safest bet
       is to run Configure as

           Configure ... -Uloclibpth -Dlibpth=/usr/lib

       to make Configure look only into the system libraries.  If
       you have some extra library directories that you really
       want to use (such as newer Berkeley DB libraries in pre-
       Panther systems), add those to the libpth:

           Configure ... -Uloclibpth -Dlibpth='/usr/lib /opt/lib'

       The default of building Perl statically may cause problems
       with complex applications like Tk: in that case consider
       building shared Perl

           Configure ... -Duseshrplib

       but remember that there's a startup cost to pay in that
       case (see above "libperl and Prebinding").


       Quite a bit has been written about MacPerl, the Perl dis­
       tribution for "Classic MacOS" - that is, versions 9 and
       earlier of MacOS. Because it runs in environment that's
       very different from that of UNIX, many things are done

       MacPerl ships with a number of modules that are used to
       access the classic MacOS toolbox. Many of these modules
       have been updated to use Mac OS X's newer "Carbon" tool­
       box, and are available from CPAN in the "Mac::Carbon" mod­


       There are two ways to use Cocoa from Perl. Apple's PerlOb­
       jCBridge module, included with Mac OS X, can be used by
       standalone scripts to access Foundation (i.e. non-GUI)
       classes and objects.

       An alternative is CamelBones, a framework that allows
       access to both Foundation and AppKit classes and objects,
       so that full GUI applications can be built in Perl. Camel­
       Bones can be found on SourceForge, at <http://www.source­

Starting From Scratch

       Unfortunately it is not that difficult somehow manage to
       break one's Mac OS X Perl rather severely.  If all else
       fails and you want to really, REALLY, start from scratch
       and remove even your Apple Perl installation (which has
       become corrupted somehow), the following instructions
       should do it.  Please think twice before following these
       instructions: they are much like conducting brain surgery
       to yourself.  Without anesthesia.  We will not come to fix
       your system if you do this.

       First, get rid of the libperl.dylib:

           # cd /System/Library/Perl/darwin/CORE
           # rm libperl.dylib

       Then delete every .bundle file found anywhere in the fold­


       You can find them for example by

           # find /System/Library/Perl /Library/Perl -name '*.bundle' -print

       After this you can either copy Perl from your operating
       system CDs (you will need at least the /Sys­
       tem/Library/Perl and /usr/bin/perl), or rebuild Perl from
       the source code with "Configure -Dprefix=/usr -Duser­
       shrplib" NOTE: the "-Dprefix=/usr" to replace the system
Help us cut cost by not downloading the whole site!
Use of automated download sofware ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and therefore is expressedly prohibited. For more details on this, take a look here



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
The Linux Tutorial welcomes your suggestions and ideas.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.09 Seconds