Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: changing a portion of a line leaving its formatting intact

by Animator (Hermit)
on Dec 14, 2004 at 16:06 UTC ( #414747=note: print w/replies, xml ) Need Help??

in reply to changing a portion of a line leaving its formatting intact

Why would this be a problem?

You can replace $f[4] with with int($f[4]) . " " x (length $f[4] - length int($f[4]));

Or you could use a regex instead of split...

Regex you could use:

Compact form:
s/(\d+(?:\.\d+)?)(?=(?:\s+\S+){4}$)/int ($1) . " " x (length($1) - length(int($1)))/eg;

Long way:

s/ ( # Capture group $1 \d+ # Digits (?: # Group (no capturing) (optional group) \. # a dot \d+ # Digits )? ) # End capture $1 (?= # Open look-ahead (?: # Group (no capturing) \s+ # Whitespace \S+ # Non-whitespace ) {4} # Match previous group exactly four times $ # Match end of line ) /int ($1) . " " x (length($1) - length(int($1)))/egx;

Note: small version tested, big version untested

Update: forgot length, added a possible regex

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://414747]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2020-10-28 01:18 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (259 votes). Check out past polls.