Challenge 1: A Basic Class — Possible Solution ==================================================================== package Book; sub new { my $class = shift; my $title = shift; my $self = { title => $title }; return bless $self, $class; } sub describe { my $self = shift; return "Title: $self->{title}"; } package main; use strict; use warnings; use feature 'say'; my $book = Book->new("Perl Fundamentals"); say $book->describe(); Output: Title: Perl Fundamentals WHY THIS WORKS AS AN ANSWER ------------------------------ package Book; reuses the chapter's own namespace-declaration syntax exactly, establishing where the following subroutines belong. sub new reuses the chapter's own constructor pattern precisely: shift the class name off @_ first (Book, per the challenge's own warn-box about getting this order right), shift the title next, build an ordinary anonymous hashref (Course 1, Chapter 9) storing it under a title key, and bless that hashref into the given class before returning it. sub describe reuses the chapter's own method pattern — my $self = shift; as the first line to unpack the invocant, then an interpolated string (Course 1, Chapter 2) pulling $self->{title} back out via the chapter's own arrow-dereference syntax, matching exactly the format the challenge requests. Book->new("Perl Fundamentals") reuses the chapter's own $obj->new(...) call-syntax explanation directly — this is sugar for new(Book, "Perl Fundamentals"), which is why $class correctly receives "Book" and $title correctly receives "Perl Fundamentals" inside new, in that order.