package Facade; use strict; use X; use Y; use Z; sub new { my $class = shift; my $self = {}; $self->{x} = X->new(); $self->{y} = Y->new(); $self->{z} = Z->new(); bless $self, $class; } sub operationFacade { my $self = shift; $self->{x}->operationX(); $self->{y}->operationY(); $self->{z}->operationZ(); } 1;