这与我的上一个问题略有关联,因为我没有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)我需要指定输出文件还是其他什么?如果是这样我怎么能这样做?
对不起,如果他们是愚蠢的问题,但我开始担心。 谢谢, 爱丽丝
答案 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