Re: MacPerl::DoAppleScript and Perl v5.10.0
[email protected] (David Micklem) Sun, 6 Mar 2011 18:44:54 +0100
| Newsgroups | perl.macperl |
|---|---|
| Message-ID | <[email protected]> |
--Apple-Mail-45--996252457 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Wow, you wait four years for a post on MacPerl digest and along come two at once. I thought that MacPerl::DoAppleScript dated back to pre-OS X MacPerl (like this whole mailing list does). You might try osascript instead. See for example: http://oreilly.com/pub/a/mac/2003/11/07/scripting_osx.html David > > From: Alan Fry <[email protected]> > Date: 6 March 2011 15:38:02 GMT+01:00 > To: [email protected] > Subject: MacPerl::DoAppleScript and Perl v5.10.0 > > > I have made a small Applet containing a Perl script intended for use > by folk not necessarily conversant with Perl. The script is inside > the applet bundle, is called by AppleScript and works as intended. > > Unfortunately the Perl script itself calls 'MacPerl::DoAppleScript' > which causes an error if the version of Perl is 5.10.0, which is the > case of course on 'Snow Leopard' machines. The problem can be > resolved by setting 'Prefer-32-Bit' to 'Yes' in > 'com.apple.versioner.perl.plist'. The question is how to achieve > this, bearing in mind some (possibly most) of the users will be > unused to Perl and terrified of using the Terminal. > > I have resolved this difficulty for the moment by placing another > Perl script in the applet bundle which reads simply > > if (qx(file /usr/bin/perl) =~ /executable x86_64/) { > qx(defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes) > } > > The notion behind this is that if the default version of the perl > executable is compiled for Intel 64 bit architecture it probably is > 64 bit perl (?) and Prefer-32-Bit should therefore be set to 'Yes'. > This script is run before the main Perl script is launched by which > time 'com.apple.versioner.perl.plist' will have been updated. > > The first question is this. Is it acceptable to change the setting > of 'com.apple.versioner.perl.plist' on someone else's machine? What > if the owner wants to use 64 bit Perl? It is not sensible to restore > the setting of Prefer-32-Bit to 'No' at the end of the run because > the owner may have already set it to 'Yes' anyway. > > The second question is this. Is there a better way to resolve the > problem of how to contrive a portable Perl script incorporating a > 'MacPerl::DoAppleScript call? > > Suggestions would be most welcome. > > Alan Fry > --Apple-Mail-45--996252457--