good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Re^3: How to use sprintf %n formatting patternby kcott (Archbishop) |
on Jun 09, 2022 at 21:22 UTC ( [id://11144624]=note: print w/replies, xml ) | Need Help?? |
I agree. My post was mainly intended to demonstrate the use of %n as you'd requested. It was not a recommendation for production-grade code. I would probably just generate the potentially long string with sprintf("%.2f %d/%d/%d %s", @$record); then use printf to truncate and print. You have a number of options here; I've shown a selection below — the first pair indicates a gotcha which you should avoid; the remaining three pairs are all potential candidates (depends on the final output you want).
The (possibly odd-looking) 'q{...}."\n"' is needed to avoid a 'Global symbol "$s" requires explicit package name ...' error. You could escape the '$' signs (e.g. "%-*2\$.*3\$s|\n") but, in my opinion, that makes the already somewhat cryptic format even less readable. I hadn't previously used '%n', so that was an interesting learning exercise for me. Thanks for the question. — Ken
In Section
Seekers of Perl Wisdom
|
|