On Sun, Mar 22, 2009 at 11:04:15PM -0500, Dave Rolsky wrote: > On Sun, 22 Mar 2009, Mark Copper wrote: > > > Begging your forebearance with this silly question. It seems to be > > related to hanging Apache processes. > > > > I am occasionally getting the warning: > > Use of uninitialized value in concatenation (.) or string at > > /usr/share/perl5/HTML/Mason/Request.pm line 1191. > > > > On my Debian install, line 1191 is the concatenation line in the print > > sub: > > > > sub print > > { > > my $self = shift; > > > > # $self->{top_stack} is always defined _except_ in the case of a > > # call to print inside a start-/end-request plugin. > > my $bufref = > > ( defined $self->{top_stack} > > ? $self->{top_stack}->[STACK_BUFFER] > > : \$self->{request_buffer} > > ); > > > > # use 'if defined' for maximum efficiency; grep creates a list. > > for ( @_ ) { > > $$bufref .= $_ if defined; # this is line 1191 > > } > > > > $self->flush_buffer if $self->{autoflush}; > > } > > > > My question: what can possibly be in @_ that satisfies the conditional > > "if defined" and still sets off the "unitialized value" warning? > > If $$bufref itself is not defined, that could do it. > > I'm not sure how that would happen in just rare cases. I'd think if it > happened it would happen often. I'd also think it would happen for > everyone else. > > > -dave
This had me a bit flummoxed. On one hand, $$bufref is frequently not defined, but the "uninitialized value" warning is quite rare. And on the other, I didn't know the LHS of a concatenation could trigger the warning: $ perl -we'my $a; my $b=\$a; my $c="Help!";$$b .= $c; print "$a\n"' Help! $ and certainly not the RHS: $ perl -we'my $a="Help!"; my $b; $a .= $b if defined $b; print "$a\n"' Help! $ I just never thought of checking if both were not defined: $ perl -we'my $a; my $b; $a .= $b if defined $b; print "$a\n"' Use of uninitialized value in concatenation (.) or string at -e line 1. $ Oh my... Mark ------------------------------------------------------------------------------ _______________________________________________ Mason-users mailing list Mason-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mason-users