Select a print friendly page Printable page  
 

Difference between revisions of "Talk:Meat cooking time calculator Metric"

From Cookipedia
Jump to: navigation, search
m
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOEDITSECTION__
 
__NOEDITSECTION__
 
===The gory details===
 
===The gory details===
I have added the formulae used for the cooking time calculations for the benefit of those interested in the gory details.
+
The roast meat cooking calculator has been completely re-written to make it more flexible and the roasting cooking times taken from trusted sources:
  
Please ignore the system code, it should be fairly easy to extract the actual times used and it allows for easy update of this page, should the calculations ever be altered.
+
* [http://www.deliaonline.com/how-to-cook/meat/roasting-times.html Delia Smith's Roast meat cooking times] from Delia On-line.
 +
* [http://www.roastingtimes.com/ RoastingTimes.com]
  
I would welcome any comments, ideas for improvement or amendments to cooking the formulae used for the cooking times.
+
More meat types will be added shortly.
  
--[[User:Chef|Chef]] 17:46, 26 December 2009 (GMT)
+
After much research I have decided not to include fan-assisted ovens in the cooking schedule as I cannot find reliable enough sources for roasting times using these.
  
===Figures used for the calculations===
+
Should you have any comments please use the 'send us your suggestions' link above, comment here or on my talk page. --[[User:Chef|Chef]] 11:17, 23 January 2011 (GMT)
 +
 
 +
I reduced the pork cooking times following email feedback, since then I have had more emails stating pork was being unercooked so I have re-enstated the original calcs.
 +
 
 +
===Check with a meat thermometer===
 +
All meat (including pork) can be safely prepared by cooking to an internal temperature of 165 °F (74 °C) or more for 15 seconds or more. #http://en.wikipedia.org/wiki/Trichinosis
 +
 
 +
----
 +
===schedule calcs===
 
<pre>
 
<pre>
$h_meats->{chicken}->{minutes_per_kilo} = '35';
+
# PORK
$h_meats->{chicken}->{minutes_extra}   = '20';
+
    $self->{meat}->{'roast pork'}->{minutes_per_lb} = '35';
$h_meats->{chicken}->{remove_foil_at}  = '25';
+
    $self->{meat}->{'roast pork'}->{minutes_resting} = '20';
$h_meats->{chicken}->{minutes_resting} = '15';
+
    $self->{meat}->{'roast pork'}->{preheat_period} = '25';
$h_meats->{chicken}->{oven_temp_c}      = '200';
+
$h_meats->{chicken}->{oven_temp_f}     = '400';
+
$h_meats->{chicken}->{oven_temp_gas}    = '6';
+
  
+
    $self->{meat}->{'roast pork'}->{stage}->{1}->{mins} = '0';
$h_meats->{duck}->{minutes_per_kilo} = '45';
+
    $self->{meat}->{'roast pork'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast pork'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
$h_meats->{duck}->{minutes_extra}   = '0';
+
$h_meats->{duck}->{remove_foil_at}  = '30';
+
$h_meats->{duck}->{minutes_resting} = '15';
+
$h_meats->{duck}->{oven_temp_c}     = '220';
+
$h_meats->{duck}->{oven_temp_f}      = '425';
+
$h_meats->{duck}->{oven_temp_gas}    = '7';
+
  
 +
    $self->{meat}->{'roast pork'}->{stage}->{2}->{mins} = $self->{meat}->{'roast pork'}->{preheat_period};
 +
    $self->{meat}->{'roast pork'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
  
$h_meats->{turkey}->{minutes_per_kilo} = '20';
+
    $self->{meat}->{'roast pork'}->{stage}->{3}->{mins} = '0';
$h_meats->{turkey}->{minutes_extra}   = '90';
+
    $self->{meat}->{'roast pork'}->{stage}->{3}->{act} = "Roast for <b>30 minutes</b> at " . $self->temp_convert('220 °C');
$h_meats->{turkey}->{remove_foil_at}   = '30';
+
$h_meats->{turkey}->{minutes_resting}  = '15';
+
$h_meats->{turkey}->{oven_temp_c}     = '180';
+
$h_meats->{turkey}->{oven_temp_f}     = '350';
+
$h_meats->{turkey}->{oven_temp_gas}    = '4';
+
  
 +
    $self->{meat}->{'roast pork'}->{stage}->{4}->{mins} = '20';
 +
    $self->{meat}->{'roast pork'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('180 °C');
  
$h_meats->{goose}->{minutes_per_kilo} = '35';
+
    $self->{meat}->{'roast pork'}->{stage}->{5}->{mins} = '0';
$h_meats->{goose}->{minutes_extra}   = '0';
+
    $self->{meat}->{'roast pork'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
$h_meats->{goose}->{remove_foil_at}   = '30';
+
$h_meats->{goose}->{minutes_resting}  = '15';
+
$h_meats->{goose}->{oven_temp_c}     = '220';
+
$h_meats->{goose}->{oven_temp_f}     = '425';
+
$h_meats->{goose}->{oven_temp_gas}    = '7';
+
  
 +
    $self->{meat}->{'roast pork'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast pork'}->{stage}->{6}->{act} = "Take the meat out of the oven and check the juices run clear";
  
# from 'raw', not pre-boiled
+
    $self->{meat}->{'roast pork'}->{stage}->{7}->{mins} = 0;
$h_meats->{'roast gammon'}->{minutes_per_kilo} = '55';
+
    $self->{meat}->{'roast pork'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and $RESTING_LINK in a warm place for <b>" . $self->{meat}->{'roast pork'}->{minutes_resting} . " minutes</b>.";
$h_meats->{'roast gammon'}->{minutes_extra}   = '30';
+
$h_meats->{'roast gammon'}->{remove_foil_at}  = '30';
+
$h_meats->{'roast gammon'}->{minutes_resting} = '15';
+
$h_meats->{'roast gammon'}->{oven_temp_c}     = '180';
+
$h_meats->{'roast gammon'}->{oven_temp_f}     = '350';
+
$h_meats->{'roast gammon'}->{oven_temp_gas}   = '4';
+
  
 +
    $self->{meat}->{'roast pork'}->{stage}->{8}->{mins} = $self->{meat}->{'roast pork'}->{minutes_resting};
 +
    $self->{meat}->{'roast pork'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
#BEEF
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast beef (rare)'}->{minutes_per_lb}  = '9';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast beef (rare)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast beef (rare)'}->{minutes_per_lb}  = '8';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast beef (rare)'}->{minutes_resting} = '30';
 +
    }
  
$h_meats->{'lamb joint'}->{minutes_per_kilo} = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{preheat_period} = '25';
$h_meats->{'lamb joint'}->{minutes_extra}   = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{1}->{mins} = '0';
$h_meats->{'lamb joint'}->{remove_foil_at}   = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast beef (rare)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
$h_meats->{'lamb joint'}->{minutes_resting} = '15';
+
$h_meats->{'lamb joint'}->{oven_temp_c}     = '200';
+
$h_meats->{'lamb joint'}->{oven_temp_f}      = '400';
+
$h_meats->{'lamb joint'}->{oven_temp_gas}    = '6';
+
  
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast beef (rare)'}->{preheat_period};
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
  
$h_meats->{'pork joint'}->{minutes_per_kilo} = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{3}->{mins} = '0';
$h_meats->{'pork joint'}->{minutes_extra}   = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
$h_meats->{'pork joint'}->{remove_foil_at}   = '35';
+
$h_meats->{'pork joint'}->{minutes_resting}  = '15';
+
$h_meats->{'pork joint'}->{oven_temp_c}     = '200';
+
$h_meats->{'pork joint'}->{oven_temp_f}     = '400';
+
$h_meats->{'pork joint'}->{oven_temp_gas}    = '6';
+
  
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
  
$h_meats->{'beef joint (rare)'}->{minutes_per_kilo} = '15';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{5}->{mins} = '0';
$h_meats->{'beef joint (rare)'}->{minutes_extra}   = '15';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
$h_meats->{'beef joint (rare)'}->{remove_foil_at}   = '15';
+
$h_meats->{'beef joint (rare)'}->{minutes_resting}  = '15';
+
$h_meats->{'beef joint (rare)'}->{oven_temp_c}     = '200';
+
$h_meats->{'beef joint (rare)'}->{oven_temp_f}     = '400';
+
$h_meats->{'beef joint (rare)'}->{oven_temp_gas}    = '6';
+
  
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
  
$h_meats->{'beef joint (medium)'}->{minutes_per_kilo} = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{7}->{mins} = 0;
$h_meats->{'beef joint (medium)'}->{minutes_extra}   = '20';
+
    $self->{meat}->{'roast beef (rare)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast beef (rare)'}->{minutes_resting} . " minutes</b>.";
$h_meats->{'beef joint (medium)'}->{remove_foil_at}  = '15';
+
$h_meats->{'beef joint (medium)'}->{minutes_resting} = '15';
+
$h_meats->{'beef joint (medium)'}->{oven_temp_c}     = '200';
+
$h_meats->{'beef joint (medium)'}->{oven_temp_f}     = '400';
+
$h_meats->{'beef joint (medium)'}->{oven_temp_gas}   = '6';
+
  
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast beef (rare)'}->{minutes_resting};
 +
    $self->{meat}->{'roast beef (rare)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
  
$h_meats->{'veal joint'}->{minutes_per_kilo} = '18';
 
$h_meats->{'veal joint'}->{minutes_extra}    = '18';
 
$h_meats->{'veal joint'}->{remove_foil_at}  = '15';
 
$h_meats->{'veal joint'}->{minutes_resting}  = '15';
 
$h_meats->{'veal joint'}->{oven_temp_c}      = '200';
 
$h_meats->{'veal joint'}->{oven_temp_f}      = '400';
 
$h_meats->{'veal joint'}->{oven_temp_gas}    = '6';
 
  
</pre>
+
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast beef (medium)'}->{minutes_per_lb}  = '14';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast beef (medium)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast beef (medium)'}->{minutes_per_lb}  = '11';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast beef (medium)'}->{minutes_resting} = '30';
 +
    }
  
{{Question}}
+
    $self->{meat}->{'roast beef (medium)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast beef (medium)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
  
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast beef (medium)'}->{preheat_period};
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
  
== lbs & oz ==
+
    $self->{meat}->{'roast beef (medium)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
  
Excellent work! Very impressive!!
+
    $self->{meat}->{'roast beef (medium)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
  
I assume all meat in the UK is now sold by the kilo (as it has been on the continent for ages).
+
    $self->{meat}->{'roast beef (medium)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
  
But for our American friends (and other countries - Australia??), maybe a link to a quick calculator for conversion from pounds/ounces would be useful. Yes, I know there is a static table on the Conversions page, but it only goes up to 2 kg, and before that in 200g steps.
+
    $self->{meat}->{'roast beef (medium)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
  
(I would also like to suggest and make minor corrections to the results text but don't know how to:
+
    $self->{meat}->{'roast beef (medium)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast beef (medium)'}->{minutes_resting} . " minutes</b>.";
  
2nd line - begin with capital letter: At hh:mm, .......
+
    $self->{meat}->{'roast beef (medium)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast beef (medium)'}->{minutes_resting};
 +
    $self->{meat}->{'roast beef (medium)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
  
4th line - instead of Out of oven, replace with Remove/take out from oven at .........)
+
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast beef (well done)'}->{minutes_per_lb}  = '18';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast beef (well done)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast beef (well done)'}->{minutes_per_lb}  = '16';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast beef (well done)'}->{minutes_resting} = '30';
 +
    }
  
--[[User:Roses2at|Roses2at]] 09:25, 1 August 2010 (BST)
+
    $self->{meat}->{'roast beef (well done)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast beef (well done)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
  
Interesting what you say about meat being sold by the kilo here.  We have two butchers in our town, one sells in lbs and the other in kilos.  Oddly enough the one who sells in lbs is by far the youngest of the two butchers.  However, I think that legally meat, fruit and veg should be sold by the kilo.  --[[User:JuliaBalbilla|JuliaBalbilla]] 12:13, 1 August 2010 (BST)
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast beef (well done)'}->{preheat_period};
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
  
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
  
As you know, I haven't been in dear old Blighty for a long time (at least, not to buy meat, only for flying visits) so I can't actually remember if it's done in kgs or lbs. Wasn't there a big legal case recently about a fruit & veg market trader who refused to sell in kg and he was taken to court by the EU?? I seem to recall he won the case.
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{4}->{mins} = $cooking_period;
Talking of butchers, did you see my question about [[tongue]] and whether it was minced before being pressed? Perhaps you could ask both your local ones on my behalf.
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
  
--[[User:Roses2at|Roses2at]] 13:18, 1 August 2010 (BST)
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
  
Yes, I now recall the case you mentioned. I shall probably go to the butcher's on Tuesday so will ask them about tongue - not that I would ever eat it! --[[User:JuliaBalbilla|JuliaBalbilla]] 13:50, 1 August 2010 (BST)
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast beef (well done)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
  
Thanks, I would appreciate that.
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{7}->{mins} = 0;
Yes, I know you wouldn't eat it but I bet your other half likes it on his sandwiches.
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{8}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast beef (well done)'}->{minutes_resting} . " minutes</b>.";
--[[User:Roses2at|Roses2at]] 14:44, 1 August 2010 (BST)
+
  
Good point re: lbs  - This is a '''very''' popular page so is worth doing.  We have a big Canadian & Australian following. - Tasked, though I'm not sure when.  Need to complete the ingredient printer (shopping list) first.
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast beef (well done)'}->{minutes_resting};
--[[User:Chef|Chef]] 16:42, 1 August 2010 (BST)
+
    $self->{meat}->{'roast beef (well done)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
  
No, 'fraid not!  Mike hates tongue and most offal apart from liver and kidneys, neither of which I will handle personally.  Now Jerry, what is the 'ingredient printer'?  If it is a way of producing a shopping list, sounds a great idea.  I do write lists, but tend to lose them or forget to take them with me.  I MUST use lists now or I will continue to buy stuff I don't need which eventually goes off.  Got to save my pennies now for holiday, so long as I don't have to earn them by cleaning AGAs :-) --[[User:JuliaBalbilla|JuliaBalbilla]] 08:29, 2 August 2010 (BST)
 
  
Yes, the ingredient printer will print off a list of ingredients (and nothing more. As you say, a shopping list. --[[User:Chef|Chef]] 08:44, 2 August 2010 (BST)
+
#BEEF
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast lamb (rare)'}->{minutes_per_lb} = '9';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast lamb (rare)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast lamb (rare)'}->{minutes_per_lb}  = '8';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast lamb (rare)'}->{minutes_resting} = '30';
 +
    }
  
Definitely and absolutely brill idea - and so say all of us.
+
    $self->{meat}->{'roast lamb (rare)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast lamb (rare)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast lamb (rare)'}->{preheat_period};
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast lamb (rare)'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast lamb (rare)'}->{minutes_resting};
 +
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
 
 +
 
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast lamb (medium)'}->{minutes_per_lb}  = '14';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast lamb (medium)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast lamb (medium)'}->{minutes_per_lb}  = '11';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast lamb (medium)'}->{minutes_resting} = '30';
 +
    }
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast lamb (medium)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast lamb (medium)'}->{preheat_period};
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast lamb (medium)'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast lamb (medium)'}->{minutes_resting};
 +
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
 
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast lamb (well done)'}->{minutes_per_lb}  = '18';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast lamb (well done)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast lamb (well done)'}->{minutes_per_lb}  = '16';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast lamb (well done)'}->{minutes_resting} = '30';
 +
    }
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast lamb (well done)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast lamb (well done)'}->{preheat_period};
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast lamb (well done)'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast lamb (well done)'}->{minutes_resting};
 +
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
 
 +
#BEEF
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast venison (rare)'}->{minutes_per_lb}  = '9';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast venison (rare)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast venison (rare)'}->{minutes_per_lb}  = '8';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast venison (rare)'}->{minutes_resting} = '30';
 +
    }
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast venison (rare)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast venison (rare)'}->{preheat_period};
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast venison (rare)'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast venison (rare)'}->{minutes_resting};
 +
    $self->{meat}->{'roast venison (rare)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
 
 +
 
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast venison (medium)'}->{minutes_per_lb}  = '14';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast venison (medium)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast venison (medium)'}->{minutes_per_lb}  = '11';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast venison (medium)'}->{minutes_resting} = '30';
 +
    }
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast venison (medium)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast venison (medium)'}->{preheat_period};
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast venison (medium)'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast venison (medium)'}->{minutes_resting};
 +
    $self->{meat}->{'roast venison (medium)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
 
 +
    # various calcs for < 5 kg & > 5kg
 +
    if ( $self->weight_convert() <= 5 ) {
 +
        $self->{meat}->{'roast venison (well done)'}->{minutes_per_lb}  = '18';
 +
        $cooking_period = 30;
 +
        $self->{meat}->{'roast venison (well done)'}->{minutes_resting} = '20';
 +
    }
 +
    else {
 +
        $self->{meat}->{'roast venison (well done)'}->{minutes_per_lb}  = '16';
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast venison (well done)'}->{minutes_resting} = '30';
 +
    }
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast venison (well done)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast venison (well done)'}->{preheat_period};
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast venison (well done)'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast venison (well done)'}->{minutes_resting};
 +
    $self->{meat}->{'roast venison (well done)'}->{stage}->{8}->{act} = "Carve the joint and serve.";
 +
 
 +
#GROUSE
 +
    $cooking_period = 20;
 +
   
 +
    # minutes per lb unused in the calc - set to 0 to kill carping
 +
    $self->{meat}->{'roast grouse'}->{minutes_per_lb}  = '0';
 +
 
 +
    $self->{meat}->{'roast grouse'}->{minutes_resting} = '10';
 +
 
 +
    $self->{meat}->{'roast grouse'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast grouse'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{2}->{mins} = $self->{meat}->{'roast grouse'}->{preheat_period};
 +
    $self->{meat}->{'roast grouse'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast grouse'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('180 °C');
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed(25) . "</b>";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{6}->{mins} = 25; # web page says 20/30 mins
 +
    $self->{meat}->{'roast grouse'}->{stage}->{6}->{act} = "Take the bird out of the oven.";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast grouse'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast grouse'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{8}->{mins} = $self->{meat}->{'roast grouse'}->{minutes_resting};
 +
    $self->{meat}->{'roast grouse'}->{stage}->{8}->{act} = "Carve and serve.";
 +
 
 +
#DUCK
 +
# RoastingTime.com very vague about time - 30 mins per pound (180 C) taken from http://www.mapleleaffarms.com/48
 +
# reduced to 20 minutes bearing in mind that the first 20 minutes is at 220 - checked an average from MANY websites
 +
    $cooking_period = 20;
 +
 
 +
    # minutes per lb unused in the calc - set to 0 to kill carping
 +
    $self->{meat}->{'roast duck'}->{minutes_per_lb}  = '20';
 +
    $self->{meat}->{'roast duck'}->{minutes_resting} = '15';
 +
 
 +
    $self->{meat}->{'roast duck'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast duck'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast duck'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast duck'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{2}->{mins} = $self->{meat}->{'roast duck'}->{preheat_period};
 +
    $self->{meat}->{'roast duck'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin (don't cover with foil) and place in the oven";
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast duck'}->{stage}->{3}->{act} = "Roast for a further <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast duck'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('180 °C');
 +
 
 +
    my ($final_stage_text,$final_stage_minutes);
 +
    ($final_stage_text,$final_stage_minutes) = $self->cooking_time_hours_and_minutes();
 +
    $self->{meat}->{'roast duck'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast duck'}->{stage}->{5}->{act} = "Roast for <b>" . $final_stage_text . "</b>";
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{6}->{mins} = $final_stage_minutes; # 60 web page says 60/90 - err on undercooked
 +
    $self->{meat}->{'roast duck'}->{stage}->{6}->{act} = "Take the bird out of the oven.";
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{7}->{mins} = 0;
 +
    $self->{meat}->{'roast duck'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast duck'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{8}->{mins} = $self->{meat}->{'roast duck'}->{minutes_resting};
 +
    $self->{meat}->{'roast duck'}->{stage}->{8}->{act} = "Carve and serve.  <em>Unlike chicken, duck is quite safe to eat rare. More than once in France, I have been scorned by the waiter for requesting well-done duck!</em>";
 +
 
 +
    $self->{meat}->{'roast duck'}->{stage}->{8}->{mins} = 0;
 +
    $self->{meat}->{'roast duck'}->{stage}->{8}->{act} = "<em>Unlike chicken, duck is quite safe to eat rare. More than once in France, I have been scorned by the waiter for requesting well-done duck!</em>";
 +
 
 +
 
 +
# pheasant
 +
# roastingtimes.com
 +
#  1. Preheat oven to 220°C (Gas Mark 7).
 +
#  2. Roast for 20 minutes at 220°C (Gas Mark 7).
 +
#  3. Reduce oven temperature to 180 °C (Gas Mark4) and continue to roast for 30-40 minutes.
 +
#  4. Remove the joint from the oven and rest for 10 minutes before carving.
 +
 
 +
    $cooking_period = 20;
 +
    $cooking_period_2 = 35;
 +
    $self->{meat}->{'roast pheasant'}->{minutes_resting} = '10';
 +
    $self->{meat}->{'roast pheasant'}->{foil_off} = '15';
 +
    $temperature_2 = '180 °C';
 +
 
 +
    # minutes per lb unused in the calc - set to 0 to kill carping
 +
    $self->{meat}->{'roast pheasant'}->{minutes_per_lb}  = '0';
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast pheasant'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{2}->{mins} = $self->{meat}->{'roast pheasant'}->{preheat_period};
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert($temperature_2);
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period_2) . "</b>";
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{7}->{mins} = $cooking_period_2 - $self->{meat}->{'roast pheasant'}->{foil_off};
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{7}->{act} = "Remove the foil for the final <strong>$self->{meat}->{'roast pheasant'}->{foil_off} minutes</strong>.";
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{8}->{mins} = $self->{meat}->{'roast pheasant'}->{foil_off};
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{8}->{act} = "Take the bird out of the oven.";
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{9}->{mins} = 0;
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{9}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast pheasant'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{10}->{mins} = $self->{meat}->{'roast pheasant'}->{minutes_resting};
 +
    $self->{meat}->{'roast pheasant'}->{stage}->{10}->{act} = "Carve and serve.";
 +
 
 +
#GROUSE
 +
# grouse
 +
# roastingtimes.com
 +
# Roast for 20 minutes at 220°C (Gas Mark 7).
 +
# Reduce oven temperature to 180 °C (Gas Mark4) and continue to roast for 20-30 minutes.
 +
# Remove the joint from the oven and rest for 10 minutes before carving.
 +
 
 +
    $cooking_period = 20;
 +
    $cooking_period_2 = 25;
 +
    $self->{meat}->{'roast grouse'}->{minutes_resting} = '10';
 +
    $self->{meat}->{'roast grouse'}->{foil_off} = '15';
 +
    $temperature_2 = '180 °C';
 +
 
 +
    # minutes per lb unused in the calc - set to 0 to kill carping
 +
    $self->{meat}->{'roast grouse'}->{minutes_per_lb}  = '0';
 +
 
 +
    $self->{meat}->{'roast grouse'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast grouse'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{2}->{mins} = $self->{meat}->{'roast grouse'}->{preheat_period};
 +
    $self->{meat}->{'roast grouse'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast grouse'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert($temperature_2);
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast grouse'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period_2) . "</b>";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{7}->{mins} = $cooking_period_2 - $self->{meat}->{'roast grouse'}->{foil_off};
 +
    $self->{meat}->{'roast grouse'}->{stage}->{7}->{act} = "Remove the foil for the final <strong>$self->{meat}->{'roast grouse'}->{foil_off} minutes</strong>.";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{8}->{mins} = $self->{meat}->{'roast grouse'}->{foil_off};
 +
    $self->{meat}->{'roast grouse'}->{stage}->{8}->{act} = "Take the bird out of the oven.";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{9}->{mins} = 0;
 +
    $self->{meat}->{'roast grouse'}->{stage}->{9}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast grouse'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast grouse'}->{stage}->{10}->{mins} = $self->{meat}->{'roast grouse'}->{minutes_resting};
 +
    $self->{meat}->{'roast grouse'}->{stage}->{10}->{act} = "Carve and serve.";
 +
 
 +
 
 +
 
 +
 
 +
#TURKEY
 +
 
 +
    if ( $self->weight_convert() <= 4.5 ) {
 +
        $cooking_period = 30;
 +
        $cooking_period_2 = 165; # 2.5 to 3 delia
 +
        $self->{meat}->{'roast turkey'}->{minutes_resting} = '30';
 +
        $temperature_2 = '180 °C';
 +
        $temperature_final = '200 °C';
 +
    }
 +
    elsif ($self->weight_convert() <= 6.5 ) {
 +
        $cooking_period_2 = 195; # 3 - 3.5 delia
 +
        $cooking_period = 40;
 +
        $self->{meat}->{'roast turkey'}->{minutes_resting} = '30';
 +
        $temperature_2 = '180 °C';
 +
        $temperature_final = '200 °C';
 +
    }
 +
    elsif ($self->weight_convert() <= 9 ) {
 +
        $cooking_period_2 = 270; # 4 to 5 delia
 +
        $cooking_period = 45;
 +
        $self->{meat}->{'roast turkey'}->{minutes_resting} = '30';
 +
        $temperature_2 = '180 °C';
 +
        $temperature_final = '200 °C';
 +
    }
 +
    else {
 +
        print header;
 +
        print "Oh-dear, that's just way too much meat for me, I'm afraid my answers wouldn't be reliable!";
 +
        exit;
 +
    }
 +
 
 +
 
 +
    # minutes per lb unused in the calc - set to 0 to kill carping
 +
    $self->{meat}->{'roast turkey'}->{minutes_per_lb}  = '0';
 +
 
 +
    $self->{meat}->{'roast turkey'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast turkey'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast turkey'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast turkey'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{2}->{mins} = $self->{meat}->{'roast turkey'}->{preheat_period};
 +
    $self->{meat}->{'roast turkey'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{3}->{mins} = '0';
 +
    $self->{meat}->{'roast turkey'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{4}->{mins} = $cooking_period;
 +
    $self->{meat}->{'roast turkey'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert($temperature_2);
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{5}->{mins} = '0';
 +
    $self->{meat}->{'roast turkey'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period_2) . "</b>";
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{6}->{mins} = $cooking_period_2;
 +
    $self->{meat}->{'roast turkey'}->{stage}->{6}->{act} = "Increase the oven heat to <b>" . $self->temp_convert($temperature_final) . "</b>, remove the tin-foil and roast for the final 30 minutes to crisp the skin.";
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{7}->{mins} = '30';
 +
    $self->{meat}->{'roast turkey'}->{stage}->{7}->{act} = "Take the bird out of the oven.";
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{8}->{mins} = 0;
 +
    $self->{meat}->{'roast turkey'}->{stage}->{8}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast turkey'}->{minutes_resting} . "</b> minutes";
 +
 
 +
    $self->{meat}->{'roast turkey'}->{stage}->{9}->{mins} = $self->{meat}->{'roast turkey'}->{minutes_resting};
 +
    $self->{meat}->{'roast turkey'}->{stage}->{9}->{act} = "Carve and serve.";
 +
 
 +
#CHICKEN
 +
 
 +
    $cooking_period_2 = 165; # 2.5 to 3 delia
 +
    $self->{meat}->{'roast chicken'}->{minutes_per_lb}  = '20';
 +
    my $crisping_time = 15;
 +
 
 +
    # delia recommends 10 to 20 mins extra - we set to 15 ($crisping_time ) and add that time for the last up-heat and crisp
 +
    # that way we keep total cooking time good using our cumulative system
 +
    $cooking_period = $self->cooking_time_minutes(); 
 +
    $self->{meat}->{'roast chicken'}->{minutes_resting} = '30';
 +
    $temperature_final = '220 °C';
 +
 
 +
    $self->{meat}->{'roast chicken'}->{preheat_period} = '25';
 +
    $self->{meat}->{'roast chicken'}->{stage}->{1}->{mins} = '0';
 +
    $self->{meat}->{'roast chicken'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast chicken'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('190 °C') . " Place the bird in a roasting tin, smear 50 g (2 oz) of softened butter over the chicken skin with your hands. Season all over with salt and black pepper. Cover the breast with 6 rashers of smoked streaky bacon and wrap another rasher of bacon around each leg.";
 +
 
 +
    $self->{meat}->{'roast chicken'}->{stage}->{2}->{mins} = $self->{meat}->{'roast chicken'}->{preheat_period};
 +
    $self->{meat}->{'roast chicken'}->{stage}->{2}->{act} = "Check oven has reached temperature then place the bird in the oven.";
 +
 
 +
    $self->{meat}->{'roast chicken'}->{stage}->{3}->{mins} = '0';
 +
    # show the extra 15 here, but don;t add to time used to calc basting time
 +
    $self->{meat}->{'roast chicken'}->{stage}->{3}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period + $crisping_time) . "</b> at " . $self->temp_convert('190 °C');
 +
    my $baste_period = int ($cooking_period / 3);
 +
 
 +
$self->{meat}->{'roast chicken'}->{stage}->{5}->{mins} = $baste_period;
 +
    $self->{meat}->{'roast chicken'}->{stage}->{5}->{act} = "Baste the chicken with its own juices.";
 +
$self->{meat}->{'roast chicken'}->{stage}->{6}->{mins} = $baste_period;
 +
    $self->{meat}->{'roast chicken'}->{stage}->{6}->{act} = 'Baste the chicken with its own juices.';
 +
$self->{meat}->{'roast chicken'}->{stage}->{7}->{mins} = $baste_period;
 +
    $self->{meat}->{'roast chicken'}->{stage}->{7}->{act} = 'Remove the crisped bacon and keep warm to serve with the chicken.';
 +
$self->{meat}->{'roast chicken'}->{stage}->{8}->{mins} = 0;
 +
    $self->{meat}->{'roast chicken'}->{stage}->{8}->{act} = 'Baste the chicken with its own juices.';
 +
 
 +
    $self->{meat}->{'roast chicken'}->{stage}->{9}->{mins} = 0;
 +
    $self->{meat}->{'roast chicken'}->{stage}->{9}->{act} = "Increase the oven heat to <b>" . $self->temp_convert($temperature_final) . "</b>, for the final <b>$crisping_time minutes</b> to turn the skin crisp and golden.";
 +
 
 +
    $self->{meat}->{'roast chicken'}->{stage}->{10}->{mins} = $crisping_time;
 +
    $self->{meat}->{'roast chicken'}->{stage}->{10}->{act} = "Remove the chicken from the oven, cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast chicken'}->{minutes_resting} . " minutes</b>.";
 +
 
 +
    $self->{meat}->{'roast chicken'}->{stage}->{11}->{mins} = $self->{meat}->{'roast chicken'}->{minutes_resting};
 +
    $self->{meat}->{'roast chicken'}->{stage}->{11}->{act} = "Carve and serve.";
 +
</pre>
  
--[[User:Roses2at|Roses2at]] 08:59, 2 August 2010 (BST)
+
<GoogleBanner></GoogleBanner>

Revision as of 16:53, 11 June 2012

The gory details

The roast meat cooking calculator has been completely re-written to make it more flexible and the roasting cooking times taken from trusted sources:

More meat types will be added shortly.

After much research I have decided not to include fan-assisted ovens in the cooking schedule as I cannot find reliable enough sources for roasting times using these.

Should you have any comments please use the 'send us your suggestions' link above, comment here or on my talk page. --Chef 11:17, 23 January 2011 (GMT)

I reduced the pork cooking times following email feedback, since then I have had more emails stating pork was being unercooked so I have re-enstated the original calcs.

Check with a meat thermometer

All meat (including pork) can be safely prepared by cooking to an internal temperature of 165 °F (74 °C) or more for 15 seconds or more. #http://en.wikipedia.org/wiki/Trichinosis


schedule calcs

# PORK
    $self->{meat}->{'roast pork'}->{minutes_per_lb}  = '35';
    $self->{meat}->{'roast pork'}->{minutes_resting} = '20';
    $self->{meat}->{'roast pork'}->{preheat_period} = '25';

    $self->{meat}->{'roast pork'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast pork'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast pork'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast pork'}->{stage}->{2}->{mins} = $self->{meat}->{'roast pork'}->{preheat_period};
    $self->{meat}->{'roast pork'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast pork'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast pork'}->{stage}->{3}->{act} = "Roast for <b>30 minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast pork'}->{stage}->{4}->{mins} = '20';
    $self->{meat}->{'roast pork'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('180 °C');

    $self->{meat}->{'roast pork'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast pork'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast pork'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast pork'}->{stage}->{6}->{act} = "Take the meat out of the oven and check the juices run clear";

    $self->{meat}->{'roast pork'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast pork'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and $RESTING_LINK in a warm place for <b>" . $self->{meat}->{'roast pork'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast pork'}->{stage}->{8}->{mins} = $self->{meat}->{'roast pork'}->{minutes_resting};
    $self->{meat}->{'roast pork'}->{stage}->{8}->{act} = "Carve the joint and serve.";
#BEEF
    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast beef (rare)'}->{minutes_per_lb}  = '9';
        $cooking_period = 30;
        $self->{meat}->{'roast beef (rare)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast beef (rare)'}->{minutes_per_lb}  = '8';
        $cooking_period = 40;
        $self->{meat}->{'roast beef (rare)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast beef (rare)'}->{preheat_period} = '25';
    $self->{meat}->{'roast beef (rare)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast beef (rare)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast beef (rare)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast beef (rare)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast beef (rare)'}->{preheat_period};
    $self->{meat}->{'roast beef (rare)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast beef (rare)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast beef (rare)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast beef (rare)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast beef (rare)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast beef (rare)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast beef (rare)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast beef (rare)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast beef (rare)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast beef (rare)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast beef (rare)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast beef (rare)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast beef (rare)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast beef (rare)'}->{minutes_resting};
    $self->{meat}->{'roast beef (rare)'}->{stage}->{8}->{act} = "Carve the joint and serve.";


    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast beef (medium)'}->{minutes_per_lb}  = '14';
        $cooking_period = 30;
        $self->{meat}->{'roast beef (medium)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast beef (medium)'}->{minutes_per_lb}  = '11';
        $cooking_period = 40;
        $self->{meat}->{'roast beef (medium)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast beef (medium)'}->{preheat_period} = '25';
    $self->{meat}->{'roast beef (medium)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast beef (medium)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast beef (medium)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast beef (medium)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast beef (medium)'}->{preheat_period};
    $self->{meat}->{'roast beef (medium)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast beef (medium)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast beef (medium)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast beef (medium)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast beef (medium)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast beef (medium)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast beef (medium)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast beef (medium)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast beef (medium)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast beef (medium)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast beef (medium)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast beef (medium)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast beef (medium)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast beef (medium)'}->{minutes_resting};
    $self->{meat}->{'roast beef (medium)'}->{stage}->{8}->{act} = "Carve the joint and serve.";

    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast beef (well done)'}->{minutes_per_lb}  = '18';
        $cooking_period = 30;
        $self->{meat}->{'roast beef (well done)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast beef (well done)'}->{minutes_per_lb}  = '16';
        $cooking_period = 40;
        $self->{meat}->{'roast beef (well done)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast beef (well done)'}->{preheat_period} = '25';
    $self->{meat}->{'roast beef (well done)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast beef (well done)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast beef (well done)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast beef (well done)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast beef (well done)'}->{preheat_period};
    $self->{meat}->{'roast beef (well done)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast beef (well done)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast beef (well done)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast beef (well done)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast beef (well done)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast beef (well done)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast beef (well done)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast beef (well done)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast beef (well done)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast beef (well done)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast beef (well done)'}->{stage}->{8}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast beef (well done)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast beef (well done)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast beef (well done)'}->{minutes_resting};
    $self->{meat}->{'roast beef (well done)'}->{stage}->{8}->{act} = "Carve the joint and serve.";


#BEEF
    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast lamb (rare)'}->{minutes_per_lb}  = '9';
        $cooking_period = 30;
        $self->{meat}->{'roast lamb (rare)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast lamb (rare)'}->{minutes_per_lb}  = '8';
        $cooking_period = 40;
        $self->{meat}->{'roast lamb (rare)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast lamb (rare)'}->{preheat_period} = '25';
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast lamb (rare)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast lamb (rare)'}->{preheat_period};
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast lamb (rare)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast lamb (rare)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast lamb (rare)'}->{minutes_resting};
    $self->{meat}->{'roast lamb (rare)'}->{stage}->{8}->{act} = "Carve the joint and serve.";


    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast lamb (medium)'}->{minutes_per_lb}  = '14';
        $cooking_period = 30;
        $self->{meat}->{'roast lamb (medium)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast lamb (medium)'}->{minutes_per_lb}  = '11';
        $cooking_period = 40;
        $self->{meat}->{'roast lamb (medium)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast lamb (medium)'}->{preheat_period} = '25';
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast lamb (medium)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast lamb (medium)'}->{preheat_period};
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast lamb (medium)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast lamb (medium)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast lamb (medium)'}->{minutes_resting};
    $self->{meat}->{'roast lamb (medium)'}->{stage}->{8}->{act} = "Carve the joint and serve.";

    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast lamb (well done)'}->{minutes_per_lb}  = '18';
        $cooking_period = 30;
        $self->{meat}->{'roast lamb (well done)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast lamb (well done)'}->{minutes_per_lb}  = '16';
        $cooking_period = 40;
        $self->{meat}->{'roast lamb (well done)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast lamb (well done)'}->{preheat_period} = '25';
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast lamb (well done)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast lamb (well done)'}->{preheat_period};
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast lamb (well done)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast lamb (well done)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast lamb (well done)'}->{minutes_resting};
    $self->{meat}->{'roast lamb (well done)'}->{stage}->{8}->{act} = "Carve the joint and serve.";

#BEEF
    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast venison (rare)'}->{minutes_per_lb}  = '9';
        $cooking_period = 30;
        $self->{meat}->{'roast venison (rare)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast venison (rare)'}->{minutes_per_lb}  = '8';
        $cooking_period = 40;
        $self->{meat}->{'roast venison (rare)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast venison (rare)'}->{preheat_period} = '25';
    $self->{meat}->{'roast venison (rare)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast venison (rare)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast venison (rare)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast venison (rare)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast venison (rare)'}->{preheat_period};
    $self->{meat}->{'roast venison (rare)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast venison (rare)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast venison (rare)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast venison (rare)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast venison (rare)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast venison (rare)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast venison (rare)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast venison (rare)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast venison (rare)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast venison (rare)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast venison (rare)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast venison (rare)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast venison (rare)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast venison (rare)'}->{minutes_resting};
    $self->{meat}->{'roast venison (rare)'}->{stage}->{8}->{act} = "Carve the joint and serve.";


    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast venison (medium)'}->{minutes_per_lb}  = '14';
        $cooking_period = 30;
        $self->{meat}->{'roast venison (medium)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast venison (medium)'}->{minutes_per_lb}  = '11';
        $cooking_period = 40;
        $self->{meat}->{'roast venison (medium)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast venison (medium)'}->{preheat_period} = '25';
    $self->{meat}->{'roast venison (medium)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast venison (medium)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast venison (medium)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast venison (medium)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast venison (medium)'}->{preheat_period};
    $self->{meat}->{'roast venison (medium)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast venison (medium)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast venison (medium)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast venison (medium)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast venison (medium)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast venison (medium)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast venison (medium)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast venison (medium)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast venison (medium)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast venison (medium)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast venison (medium)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast venison (medium)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast venison (medium)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast venison (medium)'}->{minutes_resting};
    $self->{meat}->{'roast venison (medium)'}->{stage}->{8}->{act} = "Carve the joint and serve.";

    # various calcs for < 5 kg & > 5kg
    if ( $self->weight_convert() <= 5 ) {
        $self->{meat}->{'roast venison (well done)'}->{minutes_per_lb}  = '18';
        $cooking_period = 30;
        $self->{meat}->{'roast venison (well done)'}->{minutes_resting} = '20';
    } 
    else {
        $self->{meat}->{'roast venison (well done)'}->{minutes_per_lb}  = '16';
        $cooking_period = 40;
        $self->{meat}->{'roast venison (well done)'}->{minutes_resting} = '30';
    }

    $self->{meat}->{'roast venison (well done)'}->{preheat_period} = '25';
    $self->{meat}->{'roast venison (well done)'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast venison (well done)'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast venison (well done)'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast venison (well done)'}->{stage}->{2}->{mins} = $self->{meat}->{'roast venison (well done)'}->{preheat_period};
    $self->{meat}->{'roast venison (well done)'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the meat in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast venison (well done)'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast venison (well done)'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast venison (well done)'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast venison (well done)'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('160 °C');

    $self->{meat}->{'roast venison (well done)'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast venison (well done)'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes() . "</b>";

    $self->{meat}->{'roast venison (well done)'}->{stage}->{6}->{mins} = $self->cooking_time_minutes();
    $self->{meat}->{'roast venison (well done)'}->{stage}->{6}->{act} = "Take the meat out of the oven.";

    $self->{meat}->{'roast venison (well done)'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast venison (well done)'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast venison (well done)'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast venison (well done)'}->{stage}->{8}->{mins} = $self->{meat}->{'roast venison (well done)'}->{minutes_resting};
    $self->{meat}->{'roast venison (well done)'}->{stage}->{8}->{act} = "Carve the joint and serve.";

#GROUSE
    $cooking_period = 20;
    
    # minutes per lb unused in the calc - set to 0 to kill carping
    $self->{meat}->{'roast grouse'}->{minutes_per_lb}  = '0';

    $self->{meat}->{'roast grouse'}->{minutes_resting} = '10';

    $self->{meat}->{'roast grouse'}->{preheat_period} = '25';
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast grouse'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast grouse'}->{stage}->{2}->{mins} = $self->{meat}->{'roast grouse'}->{preheat_period};
    $self->{meat}->{'roast grouse'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast grouse'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast grouse'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast grouse'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast grouse'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('180 °C');

    $self->{meat}->{'roast grouse'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast grouse'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed(25) . "</b>";

    $self->{meat}->{'roast grouse'}->{stage}->{6}->{mins} = 25; # web page says 20/30 mins
    $self->{meat}->{'roast grouse'}->{stage}->{6}->{act} = "Take the bird out of the oven.";

    $self->{meat}->{'roast grouse'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast grouse'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast grouse'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast grouse'}->{stage}->{8}->{mins} = $self->{meat}->{'roast grouse'}->{minutes_resting};
    $self->{meat}->{'roast grouse'}->{stage}->{8}->{act} = "Carve and serve.";

#DUCK
# RoastingTime.com very vague about time - 30 mins per pound (180 C) taken from http://www.mapleleaffarms.com/48
# reduced to 20 minutes bearing in mind that the first 20 minutes is at 220 - checked an average from MANY websites
    $cooking_period = 20;

    # minutes per lb unused in the calc - set to 0 to kill carping
    $self->{meat}->{'roast duck'}->{minutes_per_lb}  = '20';
    $self->{meat}->{'roast duck'}->{minutes_resting} = '15';

    $self->{meat}->{'roast duck'}->{preheat_period} = '25';
    $self->{meat}->{'roast duck'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast duck'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast duck'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast duck'}->{stage}->{2}->{mins} = $self->{meat}->{'roast duck'}->{preheat_period};
    $self->{meat}->{'roast duck'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin (don't cover with foil) and place in the oven";

    $self->{meat}->{'roast duck'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast duck'}->{stage}->{3}->{act} = "Roast for a further <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast duck'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast duck'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert('180 °C');

    my ($final_stage_text,$final_stage_minutes);
    ($final_stage_text,$final_stage_minutes) = $self->cooking_time_hours_and_minutes();
    $self->{meat}->{'roast duck'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast duck'}->{stage}->{5}->{act} = "Roast for <b>" . $final_stage_text . "</b>";

    $self->{meat}->{'roast duck'}->{stage}->{6}->{mins} = $final_stage_minutes; # 60 web page says 60/90 - err on undercooked
    $self->{meat}->{'roast duck'}->{stage}->{6}->{act} = "Take the bird out of the oven.";

    $self->{meat}->{'roast duck'}->{stage}->{7}->{mins} = 0;
    $self->{meat}->{'roast duck'}->{stage}->{7}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast duck'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast duck'}->{stage}->{8}->{mins} = $self->{meat}->{'roast duck'}->{minutes_resting};
    $self->{meat}->{'roast duck'}->{stage}->{8}->{act} = "Carve and serve.  <em>Unlike chicken, duck is quite safe to eat rare. More than once in France, I have been scorned by the waiter for requesting well-done duck!</em>";

    $self->{meat}->{'roast duck'}->{stage}->{8}->{mins} = 0;
    $self->{meat}->{'roast duck'}->{stage}->{8}->{act} = "<em>Unlike chicken, duck is quite safe to eat rare. More than once in France, I have been scorned by the waiter for requesting well-done duck!</em>";


# pheasant
# roastingtimes.com
#   1. Preheat oven to 220°C (Gas Mark 7).
#   2. Roast for 20 minutes at 220°C (Gas Mark 7).
#   3. Reduce oven temperature to 180 °C (Gas Mark4) and continue to roast for 30-40 minutes.
#   4. Remove the joint from the oven and rest for 10 minutes before carving.

    $cooking_period = 20;
    $cooking_period_2 = 35;
    $self->{meat}->{'roast pheasant'}->{minutes_resting} = '10';
    $self->{meat}->{'roast pheasant'}->{foil_off} = '15';
    $temperature_2 = '180 °C';

    # minutes per lb unused in the calc - set to 0 to kill carping
    $self->{meat}->{'roast pheasant'}->{minutes_per_lb}  = '0';

    $self->{meat}->{'roast pheasant'}->{preheat_period} = '25';
    $self->{meat}->{'roast pheasant'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast pheasant'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast pheasant'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast pheasant'}->{stage}->{2}->{mins} = $self->{meat}->{'roast pheasant'}->{preheat_period};
    $self->{meat}->{'roast pheasant'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast pheasant'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast pheasant'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast pheasant'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast pheasant'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert($temperature_2);

    $self->{meat}->{'roast pheasant'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast pheasant'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period_2) . "</b>";

    $self->{meat}->{'roast pheasant'}->{stage}->{7}->{mins} = $cooking_period_2 - $self->{meat}->{'roast pheasant'}->{foil_off};
    $self->{meat}->{'roast pheasant'}->{stage}->{7}->{act} = "Remove the foil for the final <strong>$self->{meat}->{'roast pheasant'}->{foil_off} minutes</strong>.";

    $self->{meat}->{'roast pheasant'}->{stage}->{8}->{mins} = $self->{meat}->{'roast pheasant'}->{foil_off};
    $self->{meat}->{'roast pheasant'}->{stage}->{8}->{act} = "Take the bird out of the oven.";

    $self->{meat}->{'roast pheasant'}->{stage}->{9}->{mins} = 0;
    $self->{meat}->{'roast pheasant'}->{stage}->{9}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast pheasant'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast pheasant'}->{stage}->{10}->{mins} = $self->{meat}->{'roast pheasant'}->{minutes_resting};
    $self->{meat}->{'roast pheasant'}->{stage}->{10}->{act} = "Carve and serve.";

#GROUSE
# grouse
# roastingtimes.com
# Roast for 20 minutes at 220°C (Gas Mark 7).
# Reduce oven temperature to 180 °C (Gas Mark4) and continue to roast for 20-30 minutes.
# Remove the joint from the oven and rest for 10 minutes before carving.

    $cooking_period = 20;
    $cooking_period_2 = 25;
    $self->{meat}->{'roast grouse'}->{minutes_resting} = '10';
    $self->{meat}->{'roast grouse'}->{foil_off} = '15';
    $temperature_2 = '180 °C';

    # minutes per lb unused in the calc - set to 0 to kill carping
    $self->{meat}->{'roast grouse'}->{minutes_per_lb}  = '0';

    $self->{meat}->{'roast grouse'}->{preheat_period} = '25';
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast grouse'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast grouse'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast grouse'}->{stage}->{2}->{mins} = $self->{meat}->{'roast grouse'}->{preheat_period};
    $self->{meat}->{'roast grouse'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast grouse'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast grouse'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast grouse'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast grouse'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert($temperature_2);

    $self->{meat}->{'roast grouse'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast grouse'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period_2) . "</b>";

    $self->{meat}->{'roast grouse'}->{stage}->{7}->{mins} = $cooking_period_2 - $self->{meat}->{'roast grouse'}->{foil_off};
    $self->{meat}->{'roast grouse'}->{stage}->{7}->{act} = "Remove the foil for the final <strong>$self->{meat}->{'roast grouse'}->{foil_off} minutes</strong>.";

    $self->{meat}->{'roast grouse'}->{stage}->{8}->{mins} = $self->{meat}->{'roast grouse'}->{foil_off};
    $self->{meat}->{'roast grouse'}->{stage}->{8}->{act} = "Take the bird out of the oven.";

    $self->{meat}->{'roast grouse'}->{stage}->{9}->{mins} = 0;
    $self->{meat}->{'roast grouse'}->{stage}->{9}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast grouse'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast grouse'}->{stage}->{10}->{mins} = $self->{meat}->{'roast grouse'}->{minutes_resting};
    $self->{meat}->{'roast grouse'}->{stage}->{10}->{act} = "Carve and serve.";




#TURKEY

    if ( $self->weight_convert() <= 4.5 ) {
        $cooking_period = 30;
        $cooking_period_2 = 165; # 2.5 to 3 delia
        $self->{meat}->{'roast turkey'}->{minutes_resting} = '30';
        $temperature_2 = '180 °C';
        $temperature_final = '200 °C';
    } 
    elsif ($self->weight_convert() <= 6.5 ) {
        $cooking_period_2 = 195; # 3 - 3.5 delia
        $cooking_period = 40;
        $self->{meat}->{'roast turkey'}->{minutes_resting} = '30';
        $temperature_2 = '180 °C';
        $temperature_final = '200 °C';
    }
    elsif ($self->weight_convert() <= 9 ) {
        $cooking_period_2 = 270; # 4 to 5 delia
        $cooking_period = 45;
        $self->{meat}->{'roast turkey'}->{minutes_resting} = '30';
        $temperature_2 = '180 °C';
        $temperature_final = '200 °C';
    }
    else {
        print header;
        print "Oh-dear, that's just way too much meat for me, I'm afraid my answers wouldn't be reliable!";
        exit;
    }


    # minutes per lb unused in the calc - set to 0 to kill carping
    $self->{meat}->{'roast turkey'}->{minutes_per_lb}  = '0';

    $self->{meat}->{'roast turkey'}->{preheat_period} = '25';
    $self->{meat}->{'roast turkey'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast turkey'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast turkey'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('220 °C');

    $self->{meat}->{'roast turkey'}->{stage}->{2}->{mins} = $self->{meat}->{'roast turkey'}->{preheat_period};
    $self->{meat}->{'roast turkey'}->{stage}->{2}->{act} = "Check oven has reached temperature, place the bird in a roasting tin, cover with foil and place in the oven";

    $self->{meat}->{'roast turkey'}->{stage}->{3}->{mins} = '0';
    $self->{meat}->{'roast turkey'}->{stage}->{3}->{act} = "Roast for <b>$cooking_period minutes</b> at " . $self->temp_convert('220 °C');

    $self->{meat}->{'roast turkey'}->{stage}->{4}->{mins} = $cooking_period;
    $self->{meat}->{'roast turkey'}->{stage}->{4}->{act} = "Reduce the oven temperature to" . $self->temp_convert($temperature_2);

    $self->{meat}->{'roast turkey'}->{stage}->{5}->{mins} = '0';
    $self->{meat}->{'roast turkey'}->{stage}->{5}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period_2) . "</b>";

    $self->{meat}->{'roast turkey'}->{stage}->{6}->{mins} = $cooking_period_2;
    $self->{meat}->{'roast turkey'}->{stage}->{6}->{act} = "Increase the oven heat to <b>" . $self->temp_convert($temperature_final) . "</b>, remove the tin-foil and roast for the final 30 minutes to crisp the skin.";

    $self->{meat}->{'roast turkey'}->{stage}->{7}->{mins} = '30';
    $self->{meat}->{'roast turkey'}->{stage}->{7}->{act} = "Take the bird out of the oven.";

    $self->{meat}->{'roast turkey'}->{stage}->{8}->{mins} = 0;
    $self->{meat}->{'roast turkey'}->{stage}->{8}->{act} = "Cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast turkey'}->{minutes_resting} . "</b> minutes";

    $self->{meat}->{'roast turkey'}->{stage}->{9}->{mins} = $self->{meat}->{'roast turkey'}->{minutes_resting};
    $self->{meat}->{'roast turkey'}->{stage}->{9}->{act} = "Carve and serve.";

#CHICKEN

    $cooking_period_2 = 165; # 2.5 to 3 delia
    $self->{meat}->{'roast chicken'}->{minutes_per_lb}  = '20';
    my $crisping_time = 15;

    # delia recommends 10 to 20 mins extra - we set to 15 ($crisping_time ) and add that time for the last up-heat and crisp
    # that way we keep total cooking time good using our cumulative system
    $cooking_period = $self->cooking_time_minutes();  
    $self->{meat}->{'roast chicken'}->{minutes_resting} = '30';
    $temperature_final = '220 °C';

    $self->{meat}->{'roast chicken'}->{preheat_period} = '25';
    $self->{meat}->{'roast chicken'}->{stage}->{1}->{mins} = '0';
    $self->{meat}->{'roast chicken'}->{stage}->{1}->{act} = "Preheat oven for <b>". $self->{meat}->{'roast chicken'}->{preheat_period} . " minutes</b> to" . $self->temp_convert('190 °C') . " Place the bird in a roasting tin, smear 50 g (2 oz) of softened butter over the chicken skin with your hands. Season all over with salt and black pepper. Cover the breast with 6 rashers of smoked streaky bacon and wrap another rasher of bacon around each leg.";

    $self->{meat}->{'roast chicken'}->{stage}->{2}->{mins} = $self->{meat}->{'roast chicken'}->{preheat_period};
    $self->{meat}->{'roast chicken'}->{stage}->{2}->{act} = "Check oven has reached temperature then place the bird in the oven.";

    $self->{meat}->{'roast chicken'}->{stage}->{3}->{mins} = '0';
    # show the extra 15 here, but don;t add to time used to calc basting time
    $self->{meat}->{'roast chicken'}->{stage}->{3}->{act} = "Roast for <b>" . $self->cooking_time_hours_and_minutes_fixed($cooking_period + $crisping_time) . "</b> at " . $self->temp_convert('190 °C');
    my $baste_period = int ($cooking_period / 3);

$self->{meat}->{'roast chicken'}->{stage}->{5}->{mins} = $baste_period;
    $self->{meat}->{'roast chicken'}->{stage}->{5}->{act} = "Baste the chicken with its own juices.";
$self->{meat}->{'roast chicken'}->{stage}->{6}->{mins} = $baste_period;
    $self->{meat}->{'roast chicken'}->{stage}->{6}->{act} = 'Baste the chicken with its own juices.';
$self->{meat}->{'roast chicken'}->{stage}->{7}->{mins} = $baste_period;
    $self->{meat}->{'roast chicken'}->{stage}->{7}->{act} = 'Remove the crisped bacon and keep warm to serve with the chicken.';
$self->{meat}->{'roast chicken'}->{stage}->{8}->{mins} = 0;
    $self->{meat}->{'roast chicken'}->{stage}->{8}->{act} = 'Baste the chicken with its own juices.';

    $self->{meat}->{'roast chicken'}->{stage}->{9}->{mins} = 0;
    $self->{meat}->{'roast chicken'}->{stage}->{9}->{act} = "Increase the oven heat to <b>" . $self->temp_convert($temperature_final) . "</b>, for the final <b>$crisping_time minutes</b> to turn the skin crisp and golden.";

    $self->{meat}->{'roast chicken'}->{stage}->{10}->{mins} = $crisping_time;
    $self->{meat}->{'roast chicken'}->{stage}->{10}->{act} = "Remove the chicken from the oven, cover loosely with tin-foil and leave to rest in a warm place for <b>" . $self->{meat}->{'roast chicken'}->{minutes_resting} . " minutes</b>.";

    $self->{meat}->{'roast chicken'}->{stage}->{11}->{mins} = $self->{meat}->{'roast chicken'}->{minutes_resting};
    $self->{meat}->{'roast chicken'}->{stage}->{11}->{act} = "Carve and serve.";

Personal tools
Namespaces

Variants
Actions