Beat: Variable in allen Programmen benötigt - wie?

Beitrag lesen

Auch ist die Frage offen, was deine Module mit der Variable tun dürfen.
Dürfen sie den Inhalt verändern. Oder sollen sie über einer Kopie des Inhalts arbeiten?
Sie dürfen die Variable verändern, genauer gesagt:
Ein Text wird immer wieder erweitert um hinten angehängte Textteile.

$var .= somepack::somefunc();

tut was du beschreibst. Da ist kein Grund, dass du $var übergeben musst.

Am Programmende wird der Text ausgewertet.

Wenn du wirklich Text verändern willst:
Ich rate mal, um was es auch gehen könnte.

  
package main;  
  
my $htmlout;  
  
#Du gedenkst nun, dein bisheriges $htmlout in Funktionen zu erweitern.  
  
#Du gedenkst  
require somemod;  
#$htmlout = somemod::somefunc($htmlout);  
  
#Das ist erstmal böse. Dein Modul hat aller Rechte.  
#besser ist das  
  
$htmlout =~ s/<!--\s*SOME_ID\s*-->/somepackage::somemod()/e;  

Das heisst, deine Funktion kann nicht den ganzen bisherigen Ertrag verändern, sondern nur einen in diesem dafür vorgesehenen Platzhalter ersetzen.
Dein hauptprogramm muss eine Vorstellung von korrektem Umgang mit einer solchen Variable behalten.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische