【问题标题】:Adding the elements of an array to another array using perl使用 perl 将数组的元素添加到另一个数组
【发布时间】:2017-01-29 13:19:21
【问题描述】:

请问,我想知道如何使用 perl 将数组的元素添加到另一个数组中。 如果有一个循环,我可以用来为 X 数组创建一个计数器。

#!/usr/local/bin/perl
$line = <STDIN>;
@array = split(/ /,$line);
print"$array[4]\n";
@X[0]=@array[4];
@X[1]=@array[4];
@X[2]=@array[4];
@X[3]=@array[4];
print @X;

【问题讨论】:

  • 你将不得不扩展你想要完成的事情。另外 - 打开use strict; use warnings;,因为这会告诉您代码中的一些错误。
  • 好的,谢谢。我也开启了使用严格;并使用警告;他们在我的代码中向我展示了很多错误,这些错误非常方便。
  • 然后在使用严格和警告后在此处添加无错误代码,显示您正在尝试完成的工作,正如@Sobrique 已经编写的那样。

标签: arrays perl


【解决方案1】:

我想了解如何使用 Perl 将数组的元素添加到另一个数组中。

如果你有

my @data     = ( 'a', 'b', 'c' );
my @addition = ( 'x', 'y', 'z' );

那么你可以像这样使用push@addition的内容添加到@data

push @data, @addition;

现在@data 将包含( 'a', 'b', 'c', 'x', 'y', 'z' )

你剩下的问题不清楚

【讨论】:

    【解决方案2】:

    我相信您想从每个输入中读取第五个单词,然后存储在数组中。你可以参考我的示例代码:

    use strict;
    use warnings;
    
    my  @x;
    while(<STDIN>){
        my $line = $_;
        chomp $line;
        my @array = split( /\s/, $line);
        push (@x, $array[4]);
        print "Your array: @x\n";
    }
    

    运行此代码时,如果您输入“a b c d e”,它将存储e 到数组@x,然后如果您继续输入新行“1 2 3 4 5”值5 将存储到@ 987654327@等等。 例如:

    a b c d e
    Your array: e
    1 2 3 4 5
    Your array: e 5
    one two three four five
    Your array: e 5 five
    

    此外,我建议您检查每个输入行至少 5 个单词的条件,如下所示:

    if (scalar(@array) < 5){
        print "Require at least 5 words\n";
    } else {
        push (@x, $array[4]);
        print "Your array: @x\n";
    }
    

    【讨论】:

      猜你喜欢
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多