The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

package DebugObject;

sub new {
	my $class = shift;
	return bless {messages => []}, $class;
}

sub print{
	my ($self, @messages) = @_;
	push @{$self->{messages}}, @messages;
}

sub clear{
	$_[0]->{messages} = [];
}

sub grep_messages{
	my ($self, $grep) = @_;
	return grep { $_ =~ qr/$grep/ } @{$self->{messages}};
}

sub get_messages{
	$_[0]->{messages};
}


sub count_messages{
	my ($self, $grep) = @_;
	return scalar( defined $grep ? $self->grep_messages($grep) : $self->get_messages);
}

1;