我是新来的Perl和我使用Perl的单行用几个简单的Perl脚本我的任务一起。可以在Perl脚本中使用Perl单线程吗?
我想知道,如果它能够在代码格式一堆单行结合,运行包含单行只是特定的文件?举例来说,如果我有3个单行将被运行一个接一个,我可以把这些3单行名为file.pl并运行一个文件?
oneliner....
oneliner....
code
oneliner....
什么我感兴趣的是上面显示所需的格式。
我是新来的Perl和我使用Perl的单行用几个简单的Perl脚本我的任务一起。可以在Perl脚本中使用Perl单线程吗?
我想知道,如果它能够在代码格式一堆单行结合,运行包含单行只是特定的文件?举例来说,如果我有3个单行将被运行一个接一个,我可以把这些3单行名为file.pl并运行一个文件?
oneliner....
oneliner....
code
oneliner....
什么我感兴趣的是上面显示所需的格式。
这听起来像你想有一个shell脚本中,你只是有一个衬垫:
#!/bin/sh
perl -le '...'
perl -ane '...'
perl -e '...'
如果你想运行在一个Perl程序的中间一行代码,你可以用做system:
#!/usr/bin/perl
system(q(perl -le '...'));
不过,如果你已经是一个Perl程序,你可以扩展的一行到它的非速记代码,并把它的计划。例如,请参阅How can I consolidate several Perl one-liners into a single script?
一般,那就没办法了,它不会太大的意义。通常,perl oneliner会向perl提供一些命令和参数。例如,下面是一个典型的oneliner:
perl -e 'print reverse <>' foo.txt
但是,如果你把这个脚本,你会得到如下:
Bareword found where operator expected at .\one.pl line 1, near "'print reverse <>' foo"
(Missing operator before foo?)
syntax error at .\one.pl line 1, near "perl -e "
Execution of .\one.pl aborted due to compilation errors.
所以,剧本的格式和oneliner的格式是不兼容。但是,通常可以通过从oneliner中提取命令和参数将oneliner转换为脚本格式。
刚刚发现可以将oneliners转换为perl脚本,然后可以将它们加在一起。但想知道是否可以按照问题中所述完成。谢谢你的答案@大卫 – unkaitha 2012-08-14 01:08:49
本质上说,是的。你把实际的命令放在一个文件中。因此,使用从以前的答案的例子中,创建一个包含文件:
print reverse <>
然后用perl运行它。在类Unix的机器,这将是
perl file.pl
在Windows上我想这将是类似的。搜索“在Windows下运行perl脚本”或类似的,在谷歌。
非常感谢。这对我来说非常合适。 – unkaitha 2012-08-14 05:14:39
我不确定我是否应该在此评论中询问此处。但是我非常需要解决方案来解决我之前关于“比较文件并将类似数据存储到不同文件中”的问题,即使已经得到解答,我也不确定为什么这些解决方案不适合我。我能期待你对这个问题的帮助吗?提前致谢。 – unkaitha 2012-08-14 05:20:00
@unkaitha嗯...问题要求一个名为'file.pl'的脚本,即perl脚本,而不是shell脚本。问题应该表明你愿意采取任何类型的剧本。 – David 2012-08-14 16:46:20