And the execution results to:#!/usr/bin/env perl use strict; use warnings; use List::Util qw(max); # Lower weight means higher precedence my %weight_map = ( alligator => 100, bear => 90, cat => 80, jellyfish => 10, zebra => 1, ); my $weight_lowest = max(values %weight_map) + 1; my @z0 = qw/ bear wolf jellyfish zebra dog fox cat /; my @z1 = sort { $a cmp $b } @z0; my @z2 = sort { ( $weight_map{$a} // $weight_lowest ) <=> ( $weight_map{$b} // $weight_lowest ) or $a cmp $b; } @z0; print <<RESULT; unsorted : [@z0] sorted : [@z1] weighted : [@z2] RESULT
unsorted : [bear wolf jellyfish zebra dog fox cat] sorted : [bear cat dog fox jellyfish wolf zebra] weighted : [zebra jellyfish cat bear dog fox wolf]
In reply to Re: Randomly choosing from a set of alternatives with varying popularity
by siberia-man
in thread Randomly choosing from a set of alternatives with varying popularity
by ibm1620
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |