Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: removing a sublist

by Skeeve (Vicar)
on Apr 20, 2012 at 22:21 UTC ( #966277=note: print w/replies, xml ) Need Help??

in reply to removing a sublist

I always use a hash for this:

my @winners=("ruth","sheila"); my @correct=("ruth","martin","dee","zack"); my %correct; @correct{@correct}= (); delete @correct{@winners}; print join(' ',keys %correct),"\n";


Replies are listed 'Best First'.
Re^2: removing a sublist
by Datz_cozee75 (Pilgrim) on Apr 21, 2012 at 22:17 UTC

    Alright, Skeeve, that's exactly the way I was headed, but it doesn't take me very long before I'm confounded by it. I find myself always wanting to revert to indices and crush it with brute force exhaustion like a numerical integration in fortran. I rarely find myself disappointed when I trust perl syntax.

    Am I correct to think that the keys do not have to be unique? In my mind, the keys would represent the number of times a person has won. Stan won twice and dan won once. How do I marry @frequency to @correct in the script below?

    $ perl fan dango 4 4 2 1 $ cat #!/usr/bin/perl -w use strict; use 5.10.0; use Crypt::Random qw( makerandom ); # initialize pseudorandoms my $r = makerandom( Size => 512, Strength => 1 ); # print "$r\n"; srand($r); #populate lists my @winners = qw/stan dan/; my @winner_copy = @winners; my @correct = qw/stan dan fan dango/; my @correct_copy = @correct; #populate hash my %correct; @correct{@correct} = (); delete @correct{@winners}; print join( ' ', keys %correct ), "\n"; my $count = scalar(@correct); print "$count\n"; my @new_list = @correct; $count = scalar(@new_list); print "$count\n"; # if ( scalar(@correct) eq 0 ) my @frequency = (2, 1); # --@frequency; that didn't work print "@frequency", "\n"; # decrement frequency # does anyone with a key value of zero have a correct response yet? # if yes, you have a winner; if not then test whether there was a corr +ect response among those with positive keys. # if no one correct among them, then there was no correct response, be +cause that partitions the sets. $

    I tried to map out in pseudoscript what I'm doing here. Obviously, I don't have the parts to make a control that works yet, but the contest just started today, so I don't have to have winner until after the time window closes.

    Why does the hash have 4 nodes after 2 have been deleted?

    How do I decrement the keys of a hash?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://966277]
[huck]: but you can print a hash in sorted order
[huck]: my @aa; for my $key (sort keys %hash){push @aa,$key,$hash{$ke y};} print join(',',@aa)."\n ";

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2018-05-27 08:03 GMT
Find Nodes?
    Voting Booth?