package modules;
sub database_read
»» {
»» open(DATABASE, "<$base");
»» @base_datas = <DATABASE>;
»» close DATABASE;
»» }
1;
wenn ich das modul jetzt mit &modules::database_read; einbinde wird die datenbank nicht geoeffnet.....ich vermute das der parameter ($base) nicht uebergeben wird......was kann ich dagegen machen ????
Anders als Frank nehme ich Deine Aussage mal wörtlich. Die Antwort würde dann lauten: Weil Deine Funktion nicht automatisch aufgerufen wird.
Würdest Du einen solchen Aufruf in Deinen Modul-Initialisierungscode schreiben (das ist, die Stelle, wo bisher nur "1;" steht), dann würde beim Einbinden des Moduls immer auch gleich die Datenbank geöffnet.
Wobei Du dann allerdings ein anderes Problem bekommst: Wie übergibst Du Deinen expliziten Parameterwert an einen impliziten Funktionsaufruf?
Da müßten die Module-Freaks weiterhelfen können (wahrscheinlich kann man bei "use" irgendwie Parameter mit durchreichen oder etwas in der Richtung).