Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^2: assigning arrays as values to keys of hash

by Marshall (Abbot)
on Sep 18, 2018 at 22:29 UTC ( #1222611=note: print w/replies, xml ) Need Help??


in reply to Re: assigning arrays as values to keys of hash
in thread assigning arrays as values to keys of hash

Hi tybalt89!

Great post!
However, I am not convinced that your implementation would be more efficient than any of the "2 pass solutions".
I thought my response to the OP at Re: assigning arrays as values to keys of hash to be reasonable and importantly: understandable by the OP.

I think that sometimes PerlMonks fails new Perler's with overly complicated solutions that they can't understand or generalize.
This OP is a beginner, not by user name, but by his original code.

Your solution hides a foreach loop in terms of a map{} which does a lot of work. Shorter Perl code doesn't always mean "faster".

  • Comment on Re^2: assigning arrays as values to keys of hash

Replies are listed 'Best First'.
Re^3: assigning arrays as values to keys of hash
by tybalt89 (Parson) on Sep 18, 2018 at 23:06 UTC

    It seems my "Efficiency is over-rated" comment was unclear. I fully believe (without testing, therefor as an article of faith) that my solution is slower than the two pass solutions. I guess I didn't make that clear. I am less interested in efficiency and more interested in solutions that show more rarely used perl capabilities.

    TIMTOWTDI forever :)

      Now that I understand what your objective was, all is fine.
      For a newbie, my objective is to show simple code that will "run like a rocket".
      The complications in your code are too much for a beginner.
Re^3: assigning arrays as values to keys of hash
by Anonymous Monk on Sep 18, 2018 at 22:45 UTC

      That sounds like a challenge :)

      #!/usr/bin/perl # https://perlmonks.org/?node_id=1222551 use strict; use warnings; use Data::Dumper; my %hash; $hash{ $& x /\S+/g }{ $& x //g } = 1 while <DATA>; $_ = [ keys %$_ ] for values %hash; print Dumper \%hash; __DATA__ snake fangs snake tail snake fangs bird feathers bird beak snake scales bird beak bird claw bird wings

      (I just wanted to post code that, if the problem is a homework assignment, will force the teacher to make the student go to the front of the class and explain on the blackboard, in detail, to the rest of the students, how the solution works :)

      What a hoot!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1222611]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2019-07-20 09:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?