http://www.perlmonks.org?node_id=637756

#!/usr/bin/perl use strict; use warnings FATAL => qw( all ); use Getopt::Long; use lib '../../files/lib'; use Util::Movie qw(movie); use Util::Convert qw(filify); use Util::Data qw(data_file); use Util::Sort qw(article_sort); GetOptions( 'open' => \my $open ); my $movies = movie('data'); local $\ = "\n"; for my $movie (sort { article_sort($a->{'title'}, $b->{'title'}) } val +ues %$movies) { my $title = $movie->{'title'}; next if ($movie->{'media'} ne 'tv' || (($movie->{'end year'} && $mov +ie->{'end year'} ne 'tbd') || !$movie->{'end year'})); next if $title =~ /Awards/; print $title; next if !$open; my $filename = filify($title); my $file = data_file('Movies/Episode_lists',"$filename.txt"); system("xdg-open", $file) == 0 || warn "Can't open $file"; }

Notes to self

Notes from others

Things I should get a grip on

Module's I wrote for myself

Base::Inline Base::LineMagic Base::Menu Base::Page Base::Path Base::Style Date::Misc Date::Verify Date::Birth::DayStone Date::Birth::Flower Date::Birth::Stone Date::Birth::ZodiacStone Fancy::Function Fancy::Map Fancy::Rand Fancy::Splice Fancy::Split Fancy::Join Fancy::Join::Defined Fancy::Join::Grammatical Fun::AstroBody Fun::ConvertFileSize Fun::Numbers Fun::Refreshment Fun::SoundofMusicSong HTML::Attributes HTML::Elements HTML::Forms Random::Alpha Random::Descriptor Random::Food Random::GemMetalJewelry Random::Government Random::Insanity Random::Misc Random::Month Random::Range Random::SciFi Random::Size Random::SpecialDice Random::Thing Random::Time Random::Title Random::Water Random::Body::Function Random::Body::Modification Random::Color Random::Color::Hex Random::Color::VisiBone Random::Name::Pattern Random::Name::Triador Random::RPG::Alignment Random::RPG::Class Random::RPG::Event Random::RPG::Military Random::RPG::Monster Random::RPG::SavingThrow Random::RPG::SpecialAttack Random::RPG::Spell Random::RPG::Weapon Random::RPG::WildPsionics Random::RPG::MagicItem Random::RPG::MagicItem::Giant Random::RPG::MagicItem::Ring::SpellDoubling Random::RPG::World::HighLevelCampaigns::ChronologicalRating Random::RPG::World::HighLevelCampaigns::EcologicalRating Random::RPG::World::HighLevelCampaigns::MagicalRating Random::RPG::World::HighLevelCampaigns::TechnologicalRating Random::RPG::World::WorldBuildersGuidebook::ClimateTerrainSubsistance Random::RPG::World::WorldBuildersGuidebook::Coastlines Random::RPG::World::WorldBuildersGuidebook::CulturalCharaceristic Random::RPG::World::WorldBuildersGuidebook::EarthquakeActivity Random::RPG::World::WorldBuildersGuidebook::GovernmentForm Random::RPG::World::WorldBuildersGuidebook::Hydrology Random::RPG::World::WorldBuildersGuidebook::LandWaterMasses Random::RPG::World::WorldBuildersGuidebook::LocalDistribution Random::RPG::World::WorldBuildersGuidebook::LocalPopulation Random::RPG::World::WorldBuildersGuidebook::LocalTopography Random::RPG::World::WorldBuildersGuidebook::MountainPlacement Random::RPG::World::WorldBuildersGuidebook::MountainSize Random::RPG::World::WorldBuildersGuidebook::Pantheon Random::RPG::World::WorldBuildersGuidebook::PlanetaryTemperature Random::RPG::World::WorldBuildersGuidebook::PlateMovement Random::RPG::World::WorldBuildersGuidebook::PrevailingWinds Random::RPG::World::WorldBuildersGuidebook::Race Random::RPG::World::WorldBuildersGuidebook::RacePosition Random::RPG::World::WorldBuildersGuidebook::RegionalClimate Random::RPG::World::WorldBuildersGuidebook::RegionalDistribution Random::RPG::World::WorldBuildersGuidebook::SeasonalVariations Random::RPG::World::WorldBuildersGuidebook::SettlementPattern Random::RPG::World::WorldBuildersGuidebook::Size Random::RPG::World::WorldBuildersGuidebook::SocialAlignment Random::RPG::World::WorldBuildersGuidebook::TechnologyLevel Random::RPG::World::WorldBuildersGuidebook::VolcanicActivity Random::RPG::World::WorldBuildersGuidebook::WorldHooks Random::RPG::World::WorldBuildersGuidebook::WorldShape RPG::AssetCost RPG::CharacterMutation RPG::InterspeciesAge RPG::Monster RPG::RacialLanguages RPG::WeaponName RPG::Character::AbilityScores RPG::Character::Alignment RPG::Character::AttacksPerRound RPG::Character::Class RPG::Character::HitDice RPG::Character::ProficiencySlots RPG::Character::RealityBubble RPG::Character::WeaponSlots RPG::Character::WizardSkills RPG::Character::GameTables RPG::Character::GameTable::ArmorClass RPG::Character::GameTable::Psionics RPG::Character::GameTable::RogueSkills RPG::Character::GameTable::SavingThrows RPG::Character::GameTable::SpellProgression RPG::Character::GameTable::THAC0 RPG::Character::GameTable::TurningUndead RPG::Spell::List RPG::Spell::Book Util::Abbreviation Util::Columns Util::Convert Util::ExternalLinks Util::FamilyTree Util::Line Util::ListLengths Util::Movie Util::Number Util::People Util::QuoteAttribute Util::Sort Util::TransformName Util::WordFind Util::XanthSpecies Util::Data Util::Data::Compare Util::Twitter Util::Twitter::Data Util::Twitter::ListSort Zodiac::Chinese

Reminder code

my @monsters = map{chomp $_; $_} <$word_find_list>; my @items; for my $monster (@monsters) { push @items, [$monster, { class => 'monster_item' }]; } my @gems = <$gems_file>; chomp @gems; my %alpha_gems = alpha_array(\@gems); for my $gems (keys %alpha_gems) { my @list = @{$alpha_gems{$gems}}; $alpha_gems{$gems} = undef; @{$alpha_gems{$gems}} = map { "$_ ".external_links([['Wikipedia', $_ +, $_],['Google', searchify($_), $_]]) } sort @list; }

is now

my @monsters = map { chomp $_; [$_, { class => 'monster_item' }] } <$w +ord_find_list>; my @gems = map { chomp $_; "$_ ".external_links([['Wikipedia', $_, $_] +,['Google', searchify($_), $_]]) } <$gems_file>; my %alpha_gems = alpha_array(\@gems);

%dayparts

if ($user_time < $dawn) { $daypart = 'night'; } elsif ($user_time < $noon) { $daypart = 'morning'; } elsif ($user_time < tmath($dusk, -1)) { $daypart = 'afternoon'; } else { $daypart = 'evening'; )

This is untested and unfinished.

#!/usr/bin/perl use strict; use warnings; use Astro::Sunrise qw(sun_rise sun_set); sub tmath { my ($time, $offset) = @_; my ($hour, $minutes) = split(/:/,$time); $hour += $offset; return "$hour:$minutes"; } my $user_lon = -77.314444; my $user_lat = 39.534444; my $user_spot = { lon => $user_lon, lat => $user_lat }; my $noon = '12:00'; my $dawn = sun_rise($user_spot); my $dusk = sun_set ($user_spot); my %dayparts = ( 'morning' => { 'begin' => $dawn, 'end' => $noon}, 'afternoon' => { 'begin' => $noon, 'end' => tmath($dusk, + -1) }, 'evening' => { 'begin' => tmath($dusk, -1) , 'end' => tmath($dusk, + 1) }, 'night' => { 'begin' => tmath($dusk, 1) , 'end' => $dawn} );

Laundry day

This code was written for me by atcroft on 2015-03-11.

use strict; use warnings FATAL => qw( all ); use Data::Dumper; $| = 1; $Data::Dumper::Deepcopy = 1; $Data::Dumper::Sortkeys = 1; local $\ = "\n"; my @laundry_loads = ( 'cottons', 'cold water items', 'sheets', 'uniforms', 'clothing of the day' ); my @laundry_tasks = ( 'wash', 'dry', 'fold' ); sub wash { my ( $load, $loads ) = @_; } sub dry { my ( $load, $loads ) = @_; } sub fold { my ( $load, $loads ) = @_; } my @progress = ( undef, undef, undef, ); my %task; foreach my $i ( 0 .. $#laundry_tasks ) { $task{ $laundry_tasks[$i] } = $i; } while ( my $load = shift @laundry_loads or scalar keys %task ) { print ""; foreach my $current_task ( reverse @laundry_tasks ) { if ( not scalar @laundry_loads and not(defined $task{$current_task} and defined $progress[ $task{$current_task} ] ) ) { delete $task{$current_task}; next; } if ( defined $progress[ $task{$current_task} ] ) { my $current_load = $progress[ $task{$current_task} ]; my $activity = qq{$current_task $current_load}; print $activity; if ( $current_task eq q{wash} and defined $progress[ $task{$current_task} ] ) { } if ( $current_task eq q{dry} and defined $progress[ $task{$current_task} ] ) { } if ( $current_task eq q{fold} and defined $progress[ $task{$current_task} ] ) { if ( $current_load =~ /sheets|uniforms|clothing of the day/ ) { my $new_load = $current_load eq 'sheets' ? 'laundry' : $current_load; print "put away $new_load"; } if ( $current_load eq 'sheets' ) { print 'vacuum the house'; print 'make the bed'; } if ( $current_load eq 'uniforms' ) { print 'take showers'; } pop @progress; } } } if ( defined $load ) { unshift @progress, $load; } else { unshift @progress, undef; } }

The output is...

$ perl la-2.pl 2>&1 wash cottons dry cottons wash cold water items fold cottons dry cold water items wash sheets fold cold water items dry sheets wash uniforms fold sheets put away laundry vacuum the house make the bed dry uniforms wash clothing of the day fold uniforms put away uniforms take showers dry clothing of the day fold clothing of the day put away clothing of the day