sub has_red_table { my $self = shift; for (@{ $self->tables }) { return 1 if $_->color eq 'red'; } return 0; } #### use strict; use warnings; my $table1 = Table->new(size => 'big', color => 'red'); my $table2 = Table->new(size => 'small', color => 'blue'); my $party1 = Party->new( tables => [$table1,$table2] ); my $party2 = Party->new( tables => [$table2,$table2] ); print $party1->has_red_table, $/; print $party2->has_red_table, $/;