Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过在perl中包含一行代码删除前两行_Perl - Fatal编程技术网

通过在perl中包含一行代码删除前两行

通过在perl中包含一行代码删除前两行,perl,Perl,我将以下文件作为脚本的输出:- ----Local Rates---- Market Merchant SE number mismatch Dupe Check S.Number Local Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec FY Abc Asfinag 1 9406589846 EUR 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125

我将以下文件作为脚本的输出:-

----Local Rates----

Market Merchant SE number mismatch Dupe Check S.Number Local Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec FY
Abc Asfinag  1 9406589846 EUR 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 1,125 13,500
Abc BÖG  1 #N/A! EUR 844 844 844 844 844 844 844 844 844 844 844 844 10,125
Abc Gault Millau  1 9496732942 EUR 3,375 3,375 3,375 3,375 3,375 3,375 3,375 3,375 3,375 3,375 3,375 3,375 40,500
Abc OEGV  1 9404123606 EUR 187 187 187 187 187 187 187 187 187 187 187 187 2,244
Abc Relax Guide  1 9404130395 EUR 675 675 675 675 675 675 675 675 675 675 675 675 8,100
Abc Sport 2000  1 9495264095 EUR 51 51 51 51 51 51 51 51 51 51 51 51 608
Abc Strategic Investment Pool  1 #N/A! EUR 1,980 1,980 1,980 1,980 1,980 1,980 1,980 1,980 1,980 1,980 1,980 1,980 23,760
Abc Strolz  1 #N/A! EUR 281 281 281 281 281 281 281 281 281 281 281 281 3,375
Abc Urlaubsspezialisten  1 Urlaubsspezialisten EUR 619 619 619 619 619 619 619 619 619 619 619 619 7,425
Abc Vamed  1 9404119554 EUR 281 281 281 281 281 281 281 281 281 281 281 281 3,375
Abc Vienna Fashion Night  1 Vienna Fashion Night EUR 1,688 1,688 1,688 1,688 1,688 1,688 1,688 1,688 1,688 1,688 1,688 1,688 20,250
Abc Vineus / C&C Pfeifer  1 Vineus / C&C Pfeifer EUR 1,012 1,012 1,012 1,012 1,012 1,012 1,012 1,012 1,012 1,012 1,012 1,012 12,150
Abc IKEA  1 #N/A! EUR 394 394 394 394 394 394 394 394 394 394 394 394 4,725
Abc REWE  1 9502932411 EUR 675 675 675 675 675 675 675 675 675 675 675 675 8,100
我使用以下代码获得了上述输出:

#!/usr/bin/perl

use strict;
use warnings;

open my $fh, '<', 'File' or die "Can't open file: $!\n";

while (<$fh>) {
    my @fields = split(/\t/);
    print "@fields[0,1,3,4,5,6,21,22,23,24,25,26,27,28,29,30,31,32,33]\n";
}

我该怎么办?

试着这样做,逻辑正好相反,我只是添加了一行

$. <= 2 and next;

$ 试着这样做,逻辑正好相反,我只是添加了一行

$. <= 2 and next;

$ 跳过前两行不需要外部一行

while (<$fh>) {
  next if $. <= 2;

  # ..
}
while(){

接下来,如果$.您不需要外部一行代码来跳过前两行

while (<$fh>) {
  next if $. <= 2;

  # ..
}
while(){

下一步if$。您可以通过在打印时使用if条件(即if$。>2)来实现相同的效果

#!/usr/bin/perl
use strict;
use warnings;
open my $fh, '<', 'File' or die "Can't open file: $!\n";
while (<$fh>) {
    my @fields = split(/\t/);
    print "@fields[0,1,3,4,5,6,21,22,23,24,25,26,27,28,29,30,31,32,33]\n" if $. > 2;
}
!/usr/bin/perl
严格使用;
使用警告;

打开我的$fh,“您可以通过在打印时使用if条件来实现相同的功能,即if$.>2

#!/usr/bin/perl
use strict;
use warnings;
open my $fh, '<', 'File' or die "Can't open file: $!\n";
while (<$fh>) {
    my @fields = split(/\t/);
    print "@fields[0,1,3,4,5,6,21,22,23,24,25,26,27,28,29,30,31,32,33]\n" if $. > 2;
}
!/usr/bin/perl
严格使用;
使用警告;

打开我的$fh,'这正是我以前写的=)@sputnick是的,准确地说是六秒钟。
:)
不,50秒IIRC;)谢谢大家!!但我真正的问题是把两个脚本合并到一个脚本中,我对Perl非常陌生,我在不同的帖子中发布了一个查询。希望你们也能在这方面帮助我..这正是我以前写的=)@sputnick是的,六秒准确地说是几秒钟。
:)
不,50秒IIRC;)谢谢大家!!但我真正的问题是把两个脚本合二为一,而且我对Perl非常陌生。我在不同的帖子中发布了一个查询。希望你们也能帮我。
下一个if
公式比使用
更直观。
我发现
下一个if
形式比使用
更直观的是,您可以使用范围使字段更可读:
(0,1,3..6,21..33)
您可以使用范围使字段更可读:
(0,1,3..6,21..33)