| < Day Day Up > | 
 19.1. Perl for Mac OS X GeeksThe following sections list a few of the extras that come with Mac OS X. You can find these in /System/Library/Perl/Extras, which is among the paths that the bundled version of Perl searches for modules. 19.1.1. Mac::CarbonThis module comes by way of MacPerl (http://www.macperl.org), a distribution of Perl for Mac OS 9 and earlier. Mac::Carbon (which is included with Mac OS X) gives Perl programmers access to the Carbon APIs. Its test suite is great; make sure you have your speaker volume turned up when you run it. One of the many modules included with Mac::Carbon is MacPerl; here's an example that pops up a dialog box and asks a question:      #!/usr/bin/perl -w     use strict;     use MacPerl qw(:all);     my $die_in_the_vacuum_of_space = 0;     my $answer = MacPerl::Ask("Tell me how good you thought my poem was.");     if ($answer =~         /counterpoint the surrealism of the underlying metaphor/i) {       $die_in_the_vacuum_of_space = 1;     }     print $die_in_the_vacuum_of_space, "\n"; For more information, you can access the Mac::Carbon documentation with perldoc Mac::Carbon. 19.1.2. PerlObjCBridge.pmThis module gives you a way to call into the Objective-C runtime on Mac OS X. Given an Objective-C call of the form: Type x = [Class method1:arg1 method2:arg2]; you can use the equivalent Perl code: $x = Class->method1_method2_($arg1, $arg2); You could also create an NSString and display it with the following script:      #!/usr/bin/perl -w     use strict;     use Foundation; # import Foundation objects     my $string = NSString->stringWithCString_("Hello, World");     print $string, "\n";      # prints NSCFString=SCALAR(0x858398)     print $string->cString( ) , "\n"; # prints Hello, World You can read the documentation for this module with perldoc PerlObjCBridge. 19.1.3. Mac::GlueThis module lets you invoke Apple Events from Perl. To use it with an application, you'll need to create a layer of glue between this module with the gluemac utility, which is installed along with Mac::Glue. For example, to create the glue for the Terminal application, do the following:      $ sudo /System/Library/Perl/Extras/bin/gluemac \                  /Applications/Utilities/Terminal.app/     Password: ********     What is the glue name? [Terminal]:     Created and installed App glue for Terminal.app, v1.5 (Terminal) This also creates documentation for the module. To read it, use perldoc Mac::Glue::glues::appname, as in perldoc Mac::Glue::glues::Terminal. 
 Here's a short example that uses the Terminal glue to open a telnet session to the Weather Underground:      #!/usr/bin/perl -w     use strict;     use Mac::Glue;     my $terminal = new Mac::Glue 'Terminal';     $terminal->geturl("telnet://rainmaker.wunderground.com"); You can read the documentation for this module with perldoc Mac::Glue.  | 
| < Day Day Up > |