[rt-users] Couldn't compile CustomCommitCode codeblock ... panic: sv_setpvn called with negative strlen -2 at /usr/share/perl5/Devel/StackTrace.pm line 53.

Michael Mol mikemol at gmail.com
Wed Aug 6 14:13:33 EDT 2014

On Wed, Aug 6, 2014 at 1:04 PM, Kevin Falcone <falcone at bestpractical.com> wrote:
> On Wed, Aug 06, 2014 at 12:46:17PM -0400, Michael Mol wrote:
>> First attempt at writing an RT scrip, and I'm getting a compile error
>> I can't easily identify as a problem with my code. Googling around
>> finds "sv_setpvn called with negative strlen -2" in multiple results,
>> but none of them in StackTrace.pm, mostly a lot of stuff surrounding
>> Unicode.
> You've panic'ed perl.
> I assume you're on mod_perl.

I take that as an instruction to switch away from mod_perl. OK, fine.

>> ## Begin code snippet
>> # Find the message from transactionobj->content
>> # Set the subject to the message by using ticketobj->SetSubject
>> my $body = $self->TransactionObj->Content;
>> open my $fh '<', \$body or return 0;
>> my $trapID = <$fh>; chomp $trapID;
>> <$fh>;
>> my $messageLine = <$fh>; chomp $messageLine;
>> $self->TicketObj->SetSubject("$trapID -- $messageLine);
>> close $fh;
> Why are you turning a perfectly good string into a file handle just to
> read three lines?

Well, frankly, I only want lines 1 and 3, and don't care about line 2.
And I haven't written any perl code in about six years. I remembered
the <> mechanism for reading lines, and that was simple enough.

>  Split it on newlines or write a regexp.

Is there a significant efficiency benefit, or is it a particular
question of idiomatic or stylistic code?


More information about the rt-users mailing list