Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Why is it so easy to make Perl apps for Apple Mac?

by Anonymous Monk
on Jun 17, 2018 at 17:40 UTC ( #1216817=CUFP: print w/replies, xml ) Need Help??

Compile your Perl to a portable binary application for Apple Mac (99k):
echo 'display alert (do shell script "perl -v")' | osacompile -o perl. +app
Write apps for Apple Mac in Perl: Pt.1, Pt.2, Pt.3

Replies are listed 'Best First'.
Re: Why is it so easy to make Perl apps for Apple Mac?
by usemodperl (Beadle) on Jun 18, 2018 at 02:43 UTC
    echo 'display alert (do shell script "perl -e \"print q/Just Another P +erl Hacker/\"")' | osacompile -o japh.app; open japh.app
Re: one perl line to write, compile and launch cpan search app for mac
by usemodperl (Beadle) on Jun 19, 2018 at 08:52 UTC
    perl -Mautodie -we 'die"not apple mac"unless${^O}eq"darwin";open$f,"|- +","osacompile -o CPAN.app";print$f qq~set CPAN to text returned of (d +isplay dialog "Search CPAN for" with title "Perl CPAN Search" default + answer "")\nif CPAN is equal to "" then return\ndo shell script("ope +n \\"https://metacpan.org/search?q=" & CPAN & "\\"")~;close$f;system( +"open CPAN.app")'
      Didn't mean to obfuscate that, it's just a one-liner. Here's how it works. Perl setup:
      
      perl -Mautodie -we '
      die "not apple mac" unless ${^O} eq "darwin";
      
      
      Open a pipe to the applescript compiler and print:
      
      open $f, "|-", "osacompile -o CPAN.app"; print $f qq~
      
      
      Display applescript dialog to get user input:
      
      set CPAN to text returned of (display dialog "Search CPAN for" with title "Perl CPAN Search" default answer "")\n
      
      
      Exit on empty form:
      
      if CPAN is equal to "" then return\n
      
      
      Open website with user input:
      
      do shell script("open \\"https://metacpan.org/search?q=" & CPAN & "\\"")
      
      
      Back to perl, close the print and pipe, open the app:
      
      ~;
      close $f;
      system("open CPAN.app")'
      
      
      Flowchart:
      
      perl -> applescript -> perl -> app -> CPAN!
      
      
      The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity.—Damian Conway

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://1216817]
Front-paged by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (9)
As of 2018-12-13 15:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many stories does it take before you've heard them all?







    Results (62 votes). Check out past polls.

    Notices?