Hi mhearse,
I'm struggling to make nested code work inside sprintf. Can someone advise?
1. My candy advise, DO NOT BE extremely CLEVER! Simply use your for loop outside the sprintf
2. However, if you want to do want you want to do, because you are using perl, then instead of using a subroutine or an eval, why not use a do{...} like so: not REALLY tested
#!/usr/bin/perl -w
use strict;
my %hash = (
son => { year => 2006, name => 'Paul', },
father => { year => 1981, name => 'Ryan', },
mother => { year => 1978, name => 'Bose', },
);
print sprintf(
"%s: %s",
'Person' . $/,
do { ## <== note here
my $order;
for ( sort keys %hash ) {
$order .= join ' | ' => $_, %{ $hash{$_} }, $/;
}
$order;
}
);
check perldoc -f do
from your CLI to see why this over eval.
3. IMHO, don't be too clever about your program. A simple program often save the day!
UPDATE:
Apparently, while I was still trying to frame my answer to this,
BrowserUk came up first! ++!
If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author
unknown to me
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.