This was inspired as a solution to both the (at the time) current poll topic and to a conversation regarding cold winter weather in the CB this (local) morning, involving sporty, castaway, katgirl, myself, and others (to whom I owe thanks for the inspiration-especially castaway for reminding me about needing to get supplies ahead of time).

my $setting = $apt; if ($outside->temperature <= $chilly) { $setting += $Heating; $setting += $Blanket; } $setting += $Bar if ($Bar->likeOccasionalDrink); $lover->invite(); if ($lover->arrives()) { $setting += $lover; if ($outside->temperature <= $chilly) { $cares->who = 'not me'; } lover->snuggleWith(); while ($evening or $night or $morning or $goodtime) { $lover->hold("Close"); $lover->let_go = "never"; } } BEGIN { use vars qw($have_music); eval { require Lover; }; warn "What's the point?\n" if ($@); use Bar; use Fridge; use Heating; use Heating::Blankets; eval { use Music; }; my $have_music = ( $@ ? 1 : 0 ); my $Heating = Heating->current(); my $Blanket = Heating::Blanket->current(); my $Fridge = Fridge->current(); my $Bar = Bar->current(); if ($have_music) { my $Music = Music->current(); } my $lover = Lover->current(); $Heating->getFuel() if (($Heating->checkFuelLevel()) and ($Heating->type ne $Heating->Electric)); if (($Fridge->checkFrigeForContents() < $Fridge->Normal) or (($Bar->likeOccasionalDrink) and ($Bar->checkBarForContents() < $Bar->Normal)) or ($Music->selection ne 'Appropriate') or ($Blanket->checkCount < $Blanket->Enough)) { wrapUpWarm(); goShopping(); } doLaundry() if ($Blanket->status ne 'Clean'); }

(And yes, there may be a warning of a bareword in the code, but it might be preferred that way-that would be between you and them. And the idea was mainly to take one's mind off the weather.... ;)