You can just remove the control characters

   my $x="abc.zip"~chr(7)~chr(138);
   $x .= subst(/<:Cc>+ $/,'');
   say $x;

Note that 13 is carriage return and 10 is newline

If the only ending values are (13,10), 13, or 10
you can use .chomp to remove them

   my $x="abc.zip"~chr(13)~chr(10);
   $x .= chomp;
   say $x;
On Fri, Sep 14, 2018 at 5:22 PM ToddAndMargo <toddandma...@zoho.com> wrote:
>
> Hi All,
>
> A tip to share.
>
> I work a lot with downloaded web pages.  I cut
> out things like revision numbers and download
> locations.
>
> One of the things that use to drive me a bit nuts was that
> web pages can come with all kind of weird line terminators.
> I'd wind up with a link location that bombed because
> there was some weird unprintable character at the end.
>
> Now there are routines to chop off these kind of things,
> but they don't always work, depending on what the weird
> character is.
>
> What I had done in the past as to dump the page to a file
> and use a hex editor to figure out what the weird character
> was.  I have found ascii 0, 7, 10, 12, 13 and some other weird
> ones I can't remember.  They often came is combinations too.
> Then cut the turkey out with a regex.  It was a lot of work.
>
> Now-a-days, it is easy.  I just get "greedy" (chuckle).
> I always know what end of the string should be: .zip,
> .exe, .rpm, etc..  So
>
>     $Str ~~ s/ ".zip"  .* /.zip/;
>
>     $ p6 'my $x="abc.zip"~chr(7)~chr(138); $x~~s/ ".zip" .* /.zip/; say
> "<$x>";'
>     <abc.zip>
>
> Problem solved.  And it doesn't care what the weird character(s)
> at the end is/are.
>
> :-)
>
> Hope this helps someone else.  Thank you for all the
> help you guys have given me!
>
> -T

Reply via email to