in reply to Re: Truncating after the last period
in thread Truncating after the last period

Let's assume the text is in the ASCII character encoding and that there is at least one period among the first 400 characters in the text.

The code you posted, and then posted again, has a defect in it. I demonstrated the defect to you in the complete, ready-to-run Perl script I posted. You haven't fixed the defect yet.

Replies are listed 'Best First'.
Re^3: Truncating after the last period
by BrowserUk (Patriarch) on Aug 23, 2011 at 00:26 UTC
    Let's assume the text is in the ASCII character encoding and that there is at least one period among the first 400 characters in the text.... I demonstrated the defect to you in the complete, ready-to-run Perl script I posted.

    Twaddle! This code doesn't have a period within the first 400 characters:

    #!/usr/bin/perl use strict; use warnings; use open qw( :encoding(UTF-8) :std ); use Modern::Perl; my $string = ('X' x 400) . '.'; say length $string; # Prints 401 $string =~ s[^.{1,400}\.\K.*?$][]; say length $string; # Prints 401

    The first 400 characters are all 'X's. Ergo, your code demonstrates exactly nothing!

    And I can safely assume the fact that you have dropped your \X stuff like a hot brick means that you've finally realised that that is a dead end also.

    So, I was right. Nothing more than PST.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

      Your code still has the same defect in it.

      #!/usr/bin/perl -l use strict; use warnings; my $string = '.' x 400_000_000; print length $string; # Prints 400000000 $string =~ s[^.{1,400}\.\K.*?$][]; print length $string; # Prints 401

      It's so easily fixed it boggles the mind you still haven't figured out how to fix it.

        Hm. Curiouser and curiouser. I haven't made any attempt to 'fix' it, because you (nor anyone) had demonstrated a problem with it. And you still haven't:

        $s = '.' x 500;; $s =~ s[^.{1,400}\.\K.*?$][];; print length $s;; 401

        I guess your system must be broken?


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.