in reply to Perl Moose, basics

You give the Party class a method that looks for a red table:

sub has_red_table { my $self = shift; for (@{ $self->tables }) { return 1 if $_->color eq 'red'; } return 0; }
Homework: implement this method using grep

Also, note that you have a serious typo: "table" is not "tables" ... but Moose should catch that for you. Here is the client that i used to help you as well:

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, $/;

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Replies are listed 'Best First'.
Re^2: Perl Moose, basics
by Cow1337killr (Monk) on Jun 29, 2016 at 18:47 UTC

    Thank you for your contributions to this thread.

    However, I referred back to the original post and reread the specifications:

    1.) Add the small blue table to the party once the party has started.

    2.) Once all the tables are at the party, how do I see if I have a red table?

    Now, if I were to substitute the word “pizza” for the phrase “small blue table” in the first specification, that sentence would indicate to me that the party had started, but there was no pizza, but the pizza arrived soon after the start of the party.

    So, I assume  my $party1 = Party->new( tables => [$table1,$table2] ); models the start of a party.

    Hence, the design of the Party object-oriented programming (OOP) application program interface (API) seems to lack a way to add a table or tables to a party after the party has started.

    So, our model of a party on a computer is incomplete. I think this falls under the category of abstraction, for those readers that are students of OOP.