-------------------------------------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2014/02/22 22:14
# dMod: 2017/03/12 21:23
# Appl: AppleScript & Perl
# Task: Run a Perl text script directly from AppleScript.
# : Produce all library text OR only a list of handler-calls.
# Libs: None
# Osax: None
# Tags: @Applescript, @Script, @Run, @Perl, @Text, @Script, @Directly, @Library, @Source, @Handler, @Calls
# Vers: 0.3
-------------------------------------------------------------------------------------------
set _perl to "
use v5.012;
my ($exe, $scptSrc);
# The -regex <pattern> filters out undesired libraries – in this case the lib name MUST contain “Lb”.
# Remove “-regex \".+Lb.+\"” to find ALL libraries.
$exe = qq(find -E ~/Library/'Script Libraries'/ -depth 1 -regex \".+Lb.+\" -exec osadecompile {} \\\\;);
$scptSrc = `$exe`;
say \"Perl v$]\"; # print perl version number
say '';
#--------------------------------------------------------
# Print complete source.
#--------------------------------------------------------
# print $scptSrc; #### presently disabled ####
#--------------------------------------------------------
# Produce a list of handler calls.
#--------------------------------------------------------
open my $fh, '<', \\$scptSrc or die $!;
while (<$fh>) {
if ( m!^on (\\w.*?(?=[\\(:]))(.+)! ) {
say \"$1$2\";
}
}
close $fh or die $!;
#--------------------------------------------------------
"
set shCMD to "
source ~/.profile
/usr/bin/env perl -swf <<< " & quoted form of _perl
set libText to do shell script shCMD
-------------------------------------------------------------------------------------------