2012/4/25 Steve Hay <perlbug-followup@perl.org>: > Running the program below with the attached utf8.txt input file produces > the following crash: > panic: sv_setpvn called with negative strlen -1 at utf8.pl line 4, <$rh> > line 28. > Close with partial character at utf8.pl line 4, <$rh> line 28. > > open my $rh, '<:encoding(UTF-8)', 'utf8.txt' or die $!; > open my $wh, '>:encoding(ISO-8859-1)', 'iso88591.txt' or die $!; > #select((select($wh), $| = 1)[0]); > print $wh $_ while <$rh>; > close $wh; > close $rh; > > Obviously the (Greek) characters in the input file cannot be converted > to ISO-8859-1, but perl shouldn't crash. This crash only seems to happen when combining :crlf with :encoding. I suspect we need a smaller test-case to make it obvious what's really happening. > Uncommenting the select() call strangely makes the crash go away. So > does deleting any single line from the input file. Another thing that makes it go away: removing the byte order mark in your file. This is smelling fishy. LeonThread Previous | Thread Next