从perl中的文件中只打印一行中的十个单词

时间:2014-04-01 06:55:32

标签: perl

#! /bin/usr/perl
print "Enter your database name: \n";
chomp($db=<STDIN>);
open(R1,"$db")||die("error");
while ($line1=(<R1>)) {
    $l1=$line1;
    @arr1= split("  ",$l1);
    for $i=(0..9)
    {
        print  "@arr1[$i] \t";
        print join (@arr1), "\n";
    }
}
close(R1);
exit;

我想只有十个单词或(数字也算作一个单词)但我得到的只是第一个打印的十个单词的其余部分是空白的。

期望的输出:

  

1我的名字是b c d e fg

     

你的名字是micheal,你在第5课学习

2 个答案:

答案 0 :(得分:1)

您的代码的初始问题是语法错误。第二个问题是你没有告诉Perl帮助你编写更好的代码。几乎所有Perl代码都应该有use strict; use warnings;,因此您的代码应该启动

#! /bin/usr/perl
use strict;
use warnings;

use strict;意味着您必须声明所有使用的变量,但这是一件好事。这两行还将指出语法错误。

唯一不应该有use strict;use warnings;的Perl程序是他们的作者确切知道为什么被省略并且可以向其他人解释原因的程序。

答案 1 :(得分:0)

perl -wnlaF'\t' -E 'say join "\t", @F[0 .. (9 <= $#F ? 9 : $#F)]' input.txt > output.txt