我可以访问 mac os x automator 中的 __DATA__ 部分吗
Can I access __DATA__ section in mac os x automator
我正在尝试在 运行 inside automator 的 perl 脚本中使用 __DATA__
部分。
当 运行 作为 shell 脚本时一切正常,但在 automator 内部数据部分看起来是空的。
关于原因的任何想法,以及比拥有巨大的 "here" 文件更好的解决方法?
编辑
示例脚本
use strict;
use warnings;
while(<DATA>){
print $_;
}
__DATA__
line1
line2
line3
Automator.app
以
运行您的脚本
/usr/bin/perl -e 'your script here' --
因此 __DATA__
句柄不起作用。
编辑如何确定
- Automator.app 根据定义
/usr/bin/perl
运行,因此:
- 将
/usr/bin/perl
重命名为 /usr/bin/perl_ORIG
- 在其位置添加了另一个 perl 脚本(其他 perl),+
chmod 755
#!/opt/local/bin/perl
use strict;
use warnings;
my $n = 0;
print "[=11=]\n";
for my $arg (@ARGV) {
print "$n:[$arg]\n";
$n++;
}
- 在 Automator 中运行原始脚本
- 在输出中,伪造的 "perl" 准确显示了
--
之前的所有参数
不太好(也不正确)- 但有助于发现 Automator 如何运行脚本,例如它使用 -e
(小写)、script content
+ --
.
此外,Automator 中的 tell DATA
returns 0
,在普通脚本中它 return 文件中的真实位置。 (见 Borodin 的评论)
我正在尝试在 运行 inside automator 的 perl 脚本中使用 __DATA__
部分。
当 运行 作为 shell 脚本时一切正常,但在 automator 内部数据部分看起来是空的。
关于原因的任何想法,以及比拥有巨大的 "here" 文件更好的解决方法?
编辑
示例脚本
use strict;
use warnings;
while(<DATA>){
print $_;
}
__DATA__
line1
line2
line3
Automator.app
以
/usr/bin/perl -e 'your script here' --
因此 __DATA__
句柄不起作用。
编辑如何确定
- Automator.app 根据定义
/usr/bin/perl
运行,因此: - 将
/usr/bin/perl
重命名为/usr/bin/perl_ORIG
- 在其位置添加了另一个 perl 脚本(其他 perl),+
chmod 755
#!/opt/local/bin/perl
use strict;
use warnings;
my $n = 0;
print "[=11=]\n";
for my $arg (@ARGV) {
print "$n:[$arg]\n";
$n++;
}
- 在 Automator 中运行原始脚本
- 在输出中,伪造的 "perl" 准确显示了
--
之前的所有参数
不太好(也不正确)- 但有助于发现 Automator 如何运行脚本,例如它使用 -e
(小写)、script content
+ --
.
此外,Automator 中的 tell DATA
returns 0
,在普通脚本中它 return 文件中的真实位置。 (见 Borodin 的评论)