I've been quiet for a while, so I figured I'd ask a regex question. I got
help initially from this list. Here is my problem:
This regex almost works correctly. The idea is to take a long string and
break it into pieces of maximum $lineLen long. But, it must only break on
whitespace. Then print each piece. It works perfect if the string ends in
whitespace. But not so good otherwise:
#!/usr/bin/perl -w
use strict;
my $lineLen = 20;
my %s;
$s{1}= "If you supply a backup directory and a saveQty, ".
"you must also supply a pattern to match against. The pattern ".
"is the same as you'd use in an 'ls' command, if you were to ".
"generate a list of directories. ";
$s{2}= "If you supply a backup directory and a saveQty, ".
"you must also supply a pattern to match against. The pattern ".
"is the same as you'd use in an 'ls' command, if you were to ".
"generate a list of directories.";
my $str = $s{$ARGV[0]};
foreach my $chunk ($str =~ m/\G(.{1,$lineLen})\s+/gso) {
print $chunk,"\n";
}
print "\n***right hand stuff: ",$',"\n";
__END__
Notice how the second run leaves stuff in the right hand side of the match.
I can't seem to get it to work. I can fix it by evaluating the $' var but
I'd prefer not to use
that memory var (cause this code sits in a common package).
[o817]/home/jstrauss/bin> tmp 1
If you supply a
backup directory and
a saveQty, you must
also supply a
pattern to match
against. The pattern
is the same as you'd
use in an 'ls'
command, if you were
to generate a list
of directories.
***right hand stuff:
[o817]/home/jstrauss/bin> tmp 2
If you supply a
backup directory and
a saveQty, you must
also supply a
pattern to match
against. The pattern
is the same as you'd
use in an 'ls'
command, if you were
to generate a list
of
***right hand stuff: directories.
Thanks
As always
Jay
Jay Strauss
[EMAIL PROTECTED]
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com