Nested templated data: Difference between revisions

Added Perl example
(add REXX version 2 (more general than version 1))
(Added Perl example)
Line 128:
The unused payloads have indices of : [0 6]
</pre>
 
=={{header|Perl}}==
Only handles nesting one level deep. Missing data is <code>undef</code> in the data structure, an empty string in the pretty-printer.
<lang perl>sub fulfill {
my @payloads;
push @payloads, 'Payload#' . $_ for 0..5;
my @result;
push @result, ref $_ eq 'ARRAY' ? [@payloads[@$_]] : @payloads[$_] for @{@_[0]};
return [@result];
}
 
sub format {
my $result;
$result .= ref $_ eq 'ARRAY' ? '[ "'. join('", "', @$_) . '" ], ' : qq{"$_"} for @{@_[0]};
return '[ ' . $result . " ]\n";
}
 
print format fulfill( [[1,2], [ 3,4,1], 5] );
print format fulfill( [[1,2], [10,4,1], 5] );
</lang>
{{out}}
<pre>[ [ "Payload#1", "Payload#2" ], [ "Payload#3", "Payload#4", "Payload#1" ], "Payload#5" ]
[ [ "Payload#1", "Payload#2" ], [ "", "Payload#4", "Payload#1" ], "Payload#5" ]</pre>
 
=={{header|Perl 6}}==
2,392

edits