in reply to A question on defined loop

package Foo; # your posted code here package main; my $foo = Foo->new; $foo->{_error_excerpt} = "hi"; say $foo->error_excerpt(undef); # No Error Excerpt. say $foo->error_excerpt(1); # hi

Is that not what you expect to see? Perhaps you should put a print inside error_excerpt and make sure that $error_excerpt really has the value you think it has.