You only include the @
when you want to also deal with the object itself. Hence:
that match{
case p @ Person(_, age) if p != bill => age
case Person(_, age) => age - 15
case _ => println("Not a person")
}
Otherwise, there’s no real point in including it.