Thread Variablennamen vorzubenennen (12 answers)
Opened by chmod777 at 2011-01-26 06:14

Dubu
 2011-01-26 20:59
#145048 #145048
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
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;
}
Sieht schön perlig aus, aber nach zwei Wochen muss man die Zeile bestimmt dreimal lesen, bis man wieder weiß, was es machen soll.

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 CPAN:Text::Template oder CPAN: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? ;-)

View full thread Variablennamen vorzubenennen