Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
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 lurking in the Monastery: (3)
As of 2018-08-19 20:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:









    Results (187 votes). Check out past polls.

    Notices?