http://qs1969.pair.com?node_id=606820


in reply to Drop formatting to paste plain text from Clipboard

Actually, I am fond of these simple tasks that can make our lives easier...

When I call this script I use to mention one or two arguments that would make additional effects to the text...

The following code, adds some formating to the text. By default, it writes columns of 60 characters. But it is possible to specify any number of columns.

my $cant; $cant =shift || 60 ; ## DEFAULT: 60 COLS. use Text::Format; my $anco; ## 1ST.LINE LEFT MARGIN $anco = length($1) if ($text=~/^( +)/);## MARGIN? $anco = 0 if ($anco < 1 or $anco >= $cant);## ERROR? $cant -= $anco; ## FORMAT WITHOUT LEFT MARGIN TO ADD my @tod = (split(/\n+ */,$text)); $text=new Text::Format({ columns => $cant, text => \@tod, justify => 1, firstIndent => 0}); $result.= join(" ", ($text->paragraphs())); if ($anco) ## FORMAT WITH 1ST. LINE MARGIN... { @tod= (split(/\n+ */,$result));## GET EVERY LINE my $cant= ' ' x $anco; ## LEFT MARGIN IN SPACES $result = $cant. join("\n$cant",@tod); ## ADD LEFT MARGIN AND OUTPUT } $CLIP->Set($result); ## TO THE CLIPBOARD...
I can also transform plain text into HTML code, extract certain phrases with REGEX, transform the text into a commented block, unescape characters or escape them, sort the lines, turn them all into upper/lowercase and even eval some code while leaving it's result as the output.

This is what I call a useful toolbox..