package Factory; use strict; use ConcreteProduct1; use ConcreteProduct2; sub createProduct { my $self = shift; my $code = shift; if ($code == 1) { return ConcreteProduct1->new(); } else { if ($code == 2) { return ConcreteProduct2->new(); } else { return 0; } } } 1;