Perl 我可以访问mac os x automator中的_数据__部分吗

Perl 我可以访问mac os x automator中的_数据__部分吗,perl,automator,Perl,Automator,我试图在自动程序内部运行的perl脚本中使用\uuuuu DATA\uuuuu部分 当作为shell脚本运行时,一切正常,但在automator内部,数据部分看起来是空的 知道为什么吗?还有比拥有一个巨大的“here”文件更好的解决方法吗 编辑 示例脚本 use strict; use warnings; while(<DATA>){ print $_; } __DATA__ line1 line2 line3 使用严格; 使用警告; while(){ 打印美元; } __

我试图在自动程序内部运行的perl脚本中使用
\uuuuu DATA\uuuuu
部分

当作为shell脚本运行时,一切正常,但在automator内部,数据部分看起来是空的

知道为什么吗?还有比拥有一个巨大的“here”文件更好的解决方法吗

编辑 示例脚本

use strict;
use warnings;
while(<DATA>){
    print $_;
}
__DATA__
line1
line2
line3
使用严格;
使用警告;
while(){
打印美元;
}
__资料__
第1行
第2行
第3行

自动程序.app以

/usr/bin/perl -e 'your script here' --
因此,
\uuuuu数据\uuuu
句柄不起作用


编辑如何确定

  • Automator.app根据定义运行,因此:
  • /usr/bin/perl
    重命名为
    /usr/bin/perl\u ORIG
  • 在其位置添加了另一个perl脚本(其他perl),+
    chmod755
  • 在自动机中运行原始脚本
  • 在输出上,伪“perl”精确地显示了
    --
不太好(也不正确)-但有助于发现自动机如何运行脚本,例如,它使用
-e
(小写)、
脚本内容
+
--


另外,
tell DATA
在自动机中返回
0
,在普通脚本中返回文件中的真实位置。(见Borodin的评论)

你能提供一个工作样本吗?我不太了解投票结果。这是一个合理的问题。投票关闭,只是因为有人对自动售货机一无所知。不管怎样,编辑这个问题-并添加一个example.perl相当于
打开数据,“很好的侦查-你是如何确定的?”MarkSetchell使用了不太正确的方法,(请参阅编辑),但有帮助…:)
#!/opt/local/bin/perl
use strict;
use warnings;

my $n = 0;
print "$0\n";
for my $arg (@ARGV) {
        print "$n:[$arg]\n";
        $n++;
}