On Tue, Apr 9, 2013 at 4:15 AM, <sisyph...@optusnet.com.au> wrote:

>
> -----Original Message----- From: sisyph...@optusnet.com.au
> Sent: Tuesday, April 09, 2013 12:44 PM
> To: Chris Nighswonger ; inline@perl.org
>
> Subject: Re: Using Inline Python to import Python vars
>
>
>
> -----Original Message----- From: Chris Nighswonger
>
>      @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data;
>>
>
> Try replacing that line (in Inline.pm) with:
>
>     #warn "\n########\n\$data:\n$data\n#**#######\n";
>    @{$DATA{$pkg}} = split /(?m)(\n[ \t]{0,}__\S+?__\n)/, $data;
>     for(@{$DATA{$pkg}}) {$_ = (split /\s/, $_)[-1] . "\n" if $_ =~
> /^\s{0,}__\S+?__\n$/} # remove any whitespace that precedes marker
>     #warn "\n########\n", scalar(@{$DATA{$pkg}}), "\n";l
>     #for(@{$DATA{$pkg}}) {warn ">>$_<<\n"}
>
> It's only 2 lines of code - the (commented out) warnings might be useful
> if things go awry. They won't appear in the final version of Inline.pm.
>
> That works ok for my failing Inline::C script, and without causing any of
> the Inline tests in the Inline-0.52 test suite to fail.
> I'm hopeful it will do the trick for your Inline::Python script, too.
>
>
This fixes the problem! Fantastic!


> It's possibly a little convoluted at the moment ... maybe someone can
> improve on that.
>

Is there any case where the marker would not be on a line by itself? If not
perhaps we could just do such as

    @{$DATA{$pkg}} = split /(?m)^(__\S+?__\n)/, $data;

and eliminate the need to remove whitespace?

Kind Regards,
Chris

Reply via email to