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--