# Vacations: day 7 to 14, 20, 22, 25 to 30 # # 0 1 2 3 4 # day no. 0123457890123456789012345678901234567890 # vacations ######## # # ##### # list entries X X XXXX X X my @vacation_skip = 7, 15, 20, 21, 22, 23, 25, 31 #### use List::MoreUtils qw/last_index/; my @vacation_skip = (7, 15, 20, 21, 22, 23, 25, 31); my $search_for = 18; my $found = last_index { $_ <= $search_for } @vacation_skip; if ($found % 2 == 0) { print "vacation\n"; } else { print "work day\n"; } #### sub range_overlaps { my ($start_probe, $end_probe, @skip) = @_; my $start_idx = last_index { $_ <= $start_probe } @skip; my $end_idx = last_index { $_ <= $end_probe } @skip; return $start_idx != $end_idx || ($start_idx % 2 == 0); } #### my @proxy_vacations = (0, @vacation_skip); #### sub inverted { if ($_[0] == 0) { return @_[1..$#_]; } else { return (0, @_); } } #### # 0 1 2 3 4 # day no. 0123457890123456789012345678901234567890 # vacations ######## # # ##### # old markers X X XXXX X X # new range ####### # new vacations ######## ########### # new markers X X X X #### my @items = qw/a b c d e/; my @weights = (0.1, 2, 1, 4, 1.3); my @summed_weights; my $running_sum = 0; for (@weights) { $running_sum += $_; push @summed_weights, $running_sum; } use Data::Dumper; print Dumper \@summed_weights;