Ich sehe zwei Möglichkeiten:
1. beim Aufruf für die "ungenutzten" Parameter "zwischendrin" die Default-Wert übergeben, also
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub WriteLogFile {
my $filename = shift;
my %opt = (
message => "no message for report!",
write_special => "",
output2shell => 0,
@_);
...
if ($opt{output2shell}) {...}
...
}
Der Funktionsaufruf, bei dem nur Filename und output2shell übergeben werden, sieht dann so aus:
WriteLogFile($config{logfilename}, output2shell => 1);