Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: How to build a better mousetrap (or a variable to hold a column-measuring scale)

by rsFalse (Hermit)
on Sep 10, 2019 at 12:39 UTC ( #11105959=note: print w/replies, xml ) Need Help??


in reply to How to build a better mousetrap (or a variable to hold a column-measuring scale)

This left-justified variant:
#!/usr/bin/perl -l # https://www.perlmonks.org/?node_id=11105908 use strict; use warnings; my $len = $ARGV[0]; my $new = '----+----|'; $_ = $new x $len; my $i = 0; my $ii; s/ \| (??{ $i += 10; $ii = $i =~ s!.*(?=[^0])!!r; quotemeta '-' x ( -1 + length $ii ); }) / $ii /gex; s/./|/; print;
Output:
|---+----10---+----20---+----30---+----40---+----50---+----60---+----7 +0---+----80---+----90---+----100--+----10---+----20---+----30---+---- +40---+----50---+----60---+----70---+----80---+----90---+----200--+--- +-10---+----20---+----|
This right-justified variant:
#!/usr/bin/perl -l # https://www.perlmonks.org/?node_id=11105908 use strict; use warnings; my $len = $ARGV[0]; my $new = '----+----0'; $_ = $new x $len; my $i = 0; my $space = '-' x 4; my $space_quotemeta = quotemeta $space; s/ $space_quotemeta (?= 0 ) / $i ++; my $ii = $i =~ s!.*(?=[^0])!!r; $space =~ s! (??{ quotemeta '-' x length $ii }) $ !$ii!xr; /gex; s/./|/; print;
Output:
|---+---10----+---20----+---30----+---40----+---50----+---60----+---70 +----+---80----+---90----+--100----+---10----+---20----+---30----+---4 +0----+---50----+---60----+---70----+---80----+---90----+--200----+--- +10----+---20----+---30
Input was '23'.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2020-01-22 20:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?