in reply to Coding for maintainability

Keep the products and the prices in either an array or hash. Then loop thru it, checking if the product matches what has been selected. If it does match then you add to the total and our email body. Bascially replace the entire switch with somethign like this untested code:
my %products; $products{"Product1"}{"price"}=100; $products{"Product1"}{"description"}="A worthless widget"; foreach my $product (keys %products) { if ($product == $whatevertheuserselected) { # do something cool here $total =+ $products{$product}{"price"}; $email_body .= $products{$product}{"description"}; } }