Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Value into array

by ameezys (Acolyte)
on Apr 08, 2019 at 03:14 UTC ( [id://1232266]=perlquestion: print w/replies, xml ) Need Help??

ameezys has asked for the wisdom of the Perl Monks concerning the following question:

So I have an array called @input_array = n1 n2 n3 n4 n5. I want to store two values for each array called $A and $B. Meaning that for each input, example n1, will have two variable $A and $B. How do I do this? Can I use foreach.

Replies are listed 'Best First'.
Re: Value into array
by Marshall (Canon) on Apr 08, 2019 at 04:32 UTC
    Sounds like what you need here is a 2-dimensional array, what Perl calls an Array of Array's.
    @input_array = ( \@row1, \@row2, \@row3);
    I couldn't find a link for you that I could post here that is both informative and also that I was sure was "public domain".
    Try google on "Perl array of arrays".
    Some code:
    Note that in Perl array indices start at  [0] not [1].
    #!/usr/bin/perl; use strict; use warnings; my @input_array = ( ["x","y"], ["L","M"], [2,45] ); foreach my $row (@input_array) { print "@$row\n"; } print "\nanother way\n"; for (my $row=0; $row<@input_array; $row++) { for (my $column=0; $column <@{$input_array[$row]}; $column++) { print "$input_array[$row][$column] "; } print "\n"; } print "\nyet, another way\n"; for (my $row=0; $row<3; $row++) { for (my $col =0; $col<2; $col++) { print "[$row][$col]=$input_array[$row][$col] " } print "\n"; } __END__ x y L M 2 45 another way x y L M 2 45 yet, another way [0][0]=x [0][1]=y [1][0]=L [1][1]=M [2][0]=2 [2][1]=45
Re: Value into array
by AnomalousMonk (Archbishop) on Apr 08, 2019 at 07:08 UTC

    I don't fully understand exactly what you need, but here is an additional way to Marshall's to do what you may want:

    c:\@Work\Perl\monks>perl -le "use warnings; use strict; ;; use Data::Dumper; ;; my @ra = (100, 200, 300, 400); print Dumper \@ra; ;; @ra = map { [ $_+1, $_-1 ] } @ra; print Dumper \@ra; " $VAR1 = [ 100, 200, 300, 400 ]; $VAR1 = [ [ 101, 99 ], [ 201, 199 ], [ 301, 299 ], [ 401, 399 ] ];
    See the map built-in and the core (i.e., supplied with all standard Perl releases) module Data::Dumper.


    Give a man a fish:  <%-{-{-{-<

      @input_array = (N1,N2,N3,N6,N7);

      A[N1] = 1 A[N2] = 1 A[N3] = 1 A[N6] = 1 A[N7] = 1 B[N1] = 1 B[N2] = 1 B[N3] = 1 B[N6] = 1 B[N7] = 1

      Im trying to store the value for A and B of each data inside the array into 1. Meaning that the data N1 has two values inside it which is A and B. Somehow I couldn't figure out how to store the value.

        A hash instead of an array could be useful for you:

        use strict; use warnings; my %hash = ( N1 => { A => 1, B => 1}, N2 => { A => 1, B => 1}, N3 => { A => 1, B => 1}, N6 => { A => 1, B => 1}, N7 => { A => 1, B => 1}, ); # usage e.g. print $hash{N3}{A}, "\n";

        Hello ameezys,

        From your initial description I believed also as other fellow Monks that you are looking for ARRAYS OF ARRAYS. Based on your updated description it looks that you are looking for HASHES OF ARRAYS.

        Sample of code below:

        #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %HoA = ( N1 => [undef], N2 => [undef], N3 => [undef], N4 => [undef] ); print Dumper \%HoA; # add to an existing row push @{ $HoA{"N1"} }, "A", "B"; print Dumper \%HoA; __END__ $ perl test.pl $VAR1 = { 'N3' => [ undef ], 'N2' => [ undef ], 'N1' => [ undef ], 'N4' => [ undef ] }; $VAR1 = { 'N3' => [ undef ], 'N2' => [ undef ], 'N1' => [ undef, 'A', 'B' ], 'N4' => [ undef ] };

        Is it possible to be looking for HASHES OF HASHES?

        Hope this helps, let us know if this is not what you are looking for.

        Seeking for Perl wisdom...on the process of learning...not there...yet!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1232266]
Approved by Marshall
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (7)
As of 2024-04-19 15:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found