ではMacPerlをつかった例を作ってみましょう
print "はろーわーるど";
on mouseUp
set Perl_script to "print \"はろーわーるど\";"--(1)
tell application "MacPerl"
set |戻り値| to Do Script {Perl_script} mode Batch--(2)
end tell
display dialog |戻り値|--(3)
end mouseUp
(1)変数Perl_scriptに上のやつを入れます
on mouseUp
set Perl_script to card field "Perl_script"--(1)
tell application "MacPerl"
set |戻り値| to Do Script {Perl_script} mode Batch
end tell
display dialog |戻り値|
end mouseUp
(1)を直します
この方法だとそのまま貼れて、Perlのスクリプトを作り直すのも楽です。
#!/usr/local/bin/perl-w
use strict;
my@l = split /\t/,$ARGV[0];--(1)
@l= sort {$a<=>$b}@l;
print join "\t",@l;
(1)の上2行は決まり文句です。
on mouseUp
set |リスト| to {5, 2, 1, 4, 3}--(1)
set text item delimiters of AppleScript to {tab}
set |リスト| to |リスト| as string
set Perl_script to card field "Perl_script"
tell application "MacPerl"
set |戻り値| to Do Script {Perl_script, |リスト|} mode Batch
end tell
set |戻り値| to every text item of |戻り値|--(2)
set text item delimiters of AppleScript to {""}
display dialog |戻り値|
end mouseUp
(1)でバラバラだったリストが
いかがだったでしょうか。
外部にファイルを作らなくていいというのは、美しいと思いませんでしたか?
カードはコピーして使い回せばいいんです。
フィールドを使えば、エスケープなんて考えなくてもいいんです。
一応作ったやつを置いておきます。
ダウンロード