in reply to sprintf: using nested code

I found one solution using eval. Any additional comments are welcome:
my $ordered_schema = sprintf( "%s%s", $header . "\n", eval { my $ordered_columns; for my $column (sort keys %columns) { $ordered_columns .= $columns{$column} . "\n"; } return $ordered_columns; }, );