Thread Variablennamen vorzubenennen
(12 answers)
Opened by chmod777 at 2011-01-26 06:14
Eine alternative Lösung mit sprintf():
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 my $ausgabe = sub1( text => "die option %s ist vorhanden\n" ); sub sub1 { my %para = @_; my $ausgabe; # @option enthält n Einzelwerte foreach my $o (@option) { $ausgabe .= sprintf($para{text}, $o); } return $ausgabe; } Das Füllen in der sub kann man übrigens auch schön unlesbar kurz machen: Code (perl): (dl
)
1 2 3 4 sub sub1 { my %para = @_; return join '', map { sprintf($para{text}, $_) } @option; } Noch ein Tipp: Wenn du so etwas häufiger benutzt, eventuell sogar die Texte mit den Platzhaltern in Dateien vorliegen, dann solltest du dir Template-Systeme wie Text::Template oder Template::Toolkit anschauen. Was GwenDragon gemacht hat, ist nichts anderes als ein ganz simples Template-System. PS: Gab es nicht mal so eine Regel, dass jeder einmal in seinem Programmierer-Leben ein eigenes Templatesystem programmiert haben sollte? ;-) |