Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: search and return values from an array

by thanos1983 (Vicar)
on Feb 14, 2018 at 16:45 UTC ( #1209150=note: print w/replies, xml ) Need Help??


in reply to search and return values from an array

Hello Gtforce,

You can use something like that:

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use feature 'say'; my @array = ("a1 b1", "a2 b2", "a3 b3", "a5 b5", "a4 b4"); my %hash; foreach my $element (@array) { my ($key, $value) = split(/ /, $element, 2); $hash{$key} = $value; } print Dumper \%hash; say $hash{'a5'}; __END__ $ perl test.pl $VAR1 = { 'a3' => 'b3', 'a5' => 'b5', 'a4' => 'b4', 'a2' => 'b2', 'a1' => 'b1' }; b5

What I did above is split each array element based on space between strings. Then simply I used the first element as a key to the hash and the second as the value.

Update: If you prefer one liner:

my %hash = map { split( / /, $_, 2 ) } @array;

Hope this helps, BR.

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

Replies are listed 'Best First'.
Re^2: search and return values from an array
by Gtforce (Sexton) on Feb 14, 2018 at 18:39 UTC

    Many thanks, Thanos (runs way faster than what I expected)

      Hello again Gtforce,

      Since you are also interested in speed and resources here is a small Benchmark measurement including three different ways of resolving your problem:

      A minor note here, if you use while loop it is a bit faster than foreach loop but it destroys the array.

      In conclusion on this case map looks to be the best option and it can be put it like this on a function:

      Hope this helps, BR.

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

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1209150]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2018-04-25 10:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?