Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: sprintf: using nested code

by 2teez (Vicar)
on Sep 14, 2015 at 19:08 UTC ( [id://1141962]=note: print w/replies, xml ) Need Help??


in reply to sprintf: using nested code

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

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2024-04-20 02:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found