Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.
Hm?
Also Variablen die du mit "my" deklarierst sind lokal zu ihrem entsprechenden Block. Wenn du eine Funktion hast sub func { my $a = 1; } dann existiert $a außerhalb dieser Funktion nicht. Wenn du auf eine Variable aus mehreren Funktionen zugreifen willst, dann schreibst du sie z.B. außerhalb hin:
sub func1 {
my $httpdconf = 'ich bin nur für func1 lesbar';
func2($httpdconf);
}
sub func2 {
# Macht alles fast das gleiche:
my $httpdconf = shift; # aus Array @_ erstes Element entfernen (ist dann nur noch in $httpdconf vorhanden!)
#my $httpdconf = $_[0] # erstes Element von Array @_ kopieren
#my ($httpdconf) = @_; # Im Listenkontext erstes Element von Array @_ kopieren
print "$httpdconf\n";
}
Oder du machst es objektorientiert. ;)
Noch zur Erklärung: @_ ist das Array welches die Funktionsparameter enthält. Der Vorteil ist eben, dass eine Funktion dadurch beliebig viele Parameter erhalten kann.
Achja, und verwechsle nicht bspw. $_[0] mit $_
Das erste ist einfach das erste Element vom Array @_, das zweite ist die Perl-"Defaultvariable". Viele Funktionen greifen auf $_ zurück, wenn keine Variable übergeben wurde.
Juar, hab's jetzt eh schon hinbekommen - muss mich trotzdem noch näher damit befassen - Vielen Dank jedenfalls @_ und $_ hätte ich schon nicht verwechselt