Thread Parameter bei der Übergabe "überspringen" (4 answers)
Opened by jan99 at 2015-03-26 14:47

clms
 2015-03-26 15:47
#180388 #180388
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Ich sehe zwei Möglichkeiten:
1. beim Aufruf für die "ungenutzten" Parameter "zwischendrin" die Default-Wert übergeben, also
Code (perl): (dl )
WriteLogFile_Cancel($config{logfilename},"no message for Report!","",1);

oder

2. Auf "named" Parameter umstellen, wo die Optionen als Key-Value-Paare an ein Hash übergeben werden, z.B. so:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub WriteLogFile {
   my $filename = shift;    # erster Parameter über Position, muss immer gesetzt werden
   my %opt = (              # Hash mit optionalen Parametern
       # Defaultwerte
       message          => "no message for report!",
       write_special    => "",
       output2shell     => 0,
       # mit verbliebenen Parametern aus dem Funktionsaufruf überschreiben
       @_);

   ...
   if ($opt{output2shell}) {...}
   ...
}

Der Funktionsaufruf, bei dem nur Filename und output2shell übergeben werden, sieht dann so aus:
Code (perl): (dl )
WriteLogFile($config{logfilename}, output2shell => 1);

View full thread Parameter bei der Übergabe "überspringen"