Thread Anfängerfrage Unterstrich
(18 answers)
Opened by lern_noch at 2023-01-31 11:42
Ein ; am Ende eine Befehlszeile zu setzen, ist sinnvoll, weil beim Anfügen von Code manchmal vergisst, dass in der Zeile davor eben das ; fehlte und nun das Programm seltsame Warnungen auswirft. Natürlich darf man beim letzten Befehl vor der } das ; auch weglassen.
Blöcke, also das in { }, werden nur unter ganz bestimmten Umständen mit ; nach dem } abgeschlossen, nämlich wenn der Inhalt eines Blocks einer Variablen zugewiesen wird. Das if (...) steht da um zu prüfen ob das $prueflog ein gültiges Dateihandle vom vorherigen Öffnet der Logdatei ist. Was du willst ist das hier: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 if ($prueflog) { my @loc_time = localtime(time); print $prueflog "Startzeit: ", # Ausgabe an das Dateihandle $prueflog ">", # und hier folgen weitere auszugebende Zeicenketten $loc_time[3], $loc_time[4] + 1, $loc_time[5] + 1900, $loc_time[2], $loc_time[1], $loc_time[0], "<\n"; } Schöneres Datum mit printf https://perldoc.perl.org/functions/printf ausgeben. printf $prüflog gibt nicht $prueflog aus, sondern an das Dateihandle $prueflog die nachfolgenden Zeichenketten formatiert wie im Format angegeben. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 printf $prueflog # $prueflog ist das Dateihandle # Format der Ausgabe "%s%02d.%02d.%4d %02d:%02d:%02d%s", # Hier die Zeichenketten so wie sie laut Format nacheinander ausgegeben werden sollen "Startzeit: >", $loc_time[3], $loc_time[4] + 1, $loc_time[5] + 1900, $loc_time[2], $loc_time[1], $loc_time[0], "<\n"; Information zu der Formatierung bei printf unter https://metacpan.org/pod/perlfunc#sprintf Bitte fragen wenn was unverständlich. Editiert von GwenDragon: schöner formatiert, kurze Kommentare Last edited: 2023-02-07 13:45:52 +0100 (CET) |