Search code examples
perlperl-moduleperl-data-structures

multi dimensional array for perl


I would like to push data to a multi-dimensional array in Perl

such as quality_list[i][j] using:

  push(@quality_list, $string_list, $qp); 

But, I think, I could not use it. Could you help me about it?

@se1s = ('1','5','8');
@se2s = ('3','2','4');

sub test()
{
foreach $se1(@se1s)
  {
  foreach $se2(@se2s)
    {

    push(@quality_list, $se1, $se2); 

    }
  }
}

I expect such as:

quality_list[1][0] = 1
quality_list[1][1] = 3


quality_list[2][0] = 5
quality_list[2][1] = 2

Solution

  • It's not really clear what you want. But this seems to get the results that you ask for.

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use 5.010;
    
    use Data::Dumper;
    
    my @se1s = ('1','5','8');
    my @se2s = ('3','2','4');
    
    my @quality_list;
    
    foreach (0 .. $#se1s) {
      push @{$quality_list[1]}, $se1s[$_];
      push @{$quality_list[2]}, $se2s[$_];
    }
    
    say Dumper \@quality_list;
    

    I think that reading "perldoc perldsc" will be very useful for you.