in reply to Auto text format cleanup via Win32::Clipboard

Greetings again,

Here's version 2 of this little thing. It deals with multiple paragraphs better, and it gets rid of those stupid while loops that were employed to cover my regex ineptness.

#!/usr/bin/perl -w use strict; use Win32::Clipboard; my $clipboard = Win32::Clipboard(); print "\nText auto-format-clean when copied to the clipboard is active +.\n"; print "To exit, CNTL-C out of this window.\n\n\n"; print "Usage\n", '='x75, "\n"; while (1) { $clipboard->WaitForChange(); my $text = $clipboard->GetText(); $text =~ tr/\r//d; $text =~ s/\n{2}/\r/g; $text =~ s/[ \n\t\f]+/ /g; $text =~ s/\s*\r\s*/\r/g; $text =~ s/\r/\r\n/g; $text =~ s/^\s*//; $text =~ s/\s*$//; $clipboard->Set($text); my $now = localtime(); print $now, ' => ', substr($text, 0, 45), "...\n"; } exit;

Anyone know why, when this is first run, the program generates a whole bunch (20+) report lines? Funny thing is, it doesn't happen all the time, and I can't seem to isolate why based on user behavior. Weird.

-gryphon
code('Perl') || die;

Replies are listed 'Best First'.
Re: Re: Auto text format cleanup via Win32::Clipboard
by Snowman (Acolyte) on Aug 17, 2001 at 19:06 UTC

    You could try setting the clipboard to a know state, before entering you while loop.

    Or check if $text eq "" after regex's and contiune on next iteration of the loop.

    --
    The Snowman
    snowman@notreally.co.uk
    

      Thanks!

      I added $clipboard->Empty();
      after my $clipboard = Win32::Clipboard();
      and added next if ($text eq '');
      before $clipboard->Set($text);, and that seems to have done the trick.

      -gryphon
      code('Perl') || die;