Here is another clipboard transform that I use. It transforms a \n-separated list into a comma-separated list with " around each item and ( and ) around the list, wrapped to 72 columns (for use in a 3270 emulator). It doesn't use text:wrap, because a string might contain a space, and be wrapped inappropriately. I call it "cqlist.cmd" and bind it to Ctrl-Shift-'. @rem = '--*-Perl-*--
@echo off
perl -x -S "%~dpnx0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
@rem ';
#!perl
#line 8
use strict;
use warnings;
use Win32::Clipboard;
my $CLIP = Win32::Clipboard();
my ($output, $lastline) = ("", "(");
foreach( split m[\x0d\x0a?|\x0a\x0d?], $CLIP->GetText ) {
(my $quoted = $_) =~ s/'/''/g;
$quoted = qq['$quoted', ];
if( $lastline ne "" and length($lastline) + length($quoted) > 72 )
+{
chop $lastline; # remove trailing space
$output .= $lastline . "\n";
$lastline = "";
}
$lastline .= $quoted;
}
$lastline =~ s|, \z|)|; # convert last ", " to a ")"
$output .= $lastline;
$output =~ s|\n|\x0d\x0a|g; # convert perlish \n to windows CRLF.
print $output;
$CLIP->Set($output);
__END__
:endofperl
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|