Nested templated data: Difference between revisions
Content added Content deleted
Walterpachl (talk | contribs) (add REXX version 2 (more general than version 1)) |
SqrtNegInf (talk | contribs) (Added Perl example) |
||
Line 128: | Line 128: | ||
The unused payloads have indices of : [0 6] |
The unused payloads have indices of : [0 6] |
||
</pre> |
</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}}== |
=={{header|Perl 6}}== |