Perl,Seq.pl脚本没有运行

时间:2014-01-30 09:56:25

标签: perl

这与我的上一个问题略有关联,因为我没有perl经验,但作为我的研究论文的一部分,我必须使用这个perl脚本(这不属于我)。我遇到了问题,因为我似乎无法输出任何东西:

#!/usr/bin/perl -w
#
# seq.pl
# Script to see how random session ID are.
############################################
use Math::BigInt;

@seq = ();
@x = @y = @z = (;
while(<>) {
chomp($val = $_);
push(@seq, $val);

}
for ($i = 3; $i < $#seq; $i++) {
push(@x, $seq[$i]       - $seq[$i - 1]);
push(@y, $seq[$i - 1]   - $seq[$i - 2]);
push(@z, $seq[$i - 2]   - $seq[$i - 3]);
}
for ($i = 0; $i < $#seq; $i++) {
print $x[$i] . " " . $y[$i] . " " . $z[$i] . "\n"; 
} 

我正在使用此脚本输出图表的坐标。 我的问题是: 1)我在哪里输入数字 2)我需要指定输出文件还是其他什么?如果是这样我怎么能这样做?

对不起,如果他们是愚蠢的问题,但我开始担心。 谢谢, 爱丽丝

1 个答案:

答案 0 :(得分:2)

while(<>) {

它使用钻石操作符从STDIN读取。所以你可以:

  • 运行程序,然后开始输入
  • 将一些数据传输到另一个程序(foo | perl yourscript
  • 的输出中
  • 从文件(perl yourscript < somefile.txt
  • 中将一些数据传输到其中
  • 将文件名作为参数传递(perl yourscript somefile.txt someotherfile.txt

    打印$ x [$ i]。 “”。 $ y [$ i]。 “”。 $ z [$ i]。 “\ n” 个;

它输出到STDOUT,因此将显示输出。

您可以将其重定向到文件。 perl yourscript somefile.txt > someoutput.txt