| Variablen | 
Die über eine URL oder in einem baseportal-Tag angegebenen Parameter werden automatisch als Variablen zur Verfügung gestellt.
<perl> out "Zähler: ",$cnt++,"<p>"; out '<a href="/cgi-bin/baseportal.pl?htx=/zaehler&cnt=',$cnt,'">Weiter'; </perl>
Pfiffig ist der Einsatz von Variablen, um HTML-Bausteine individuell anzupassen:
<div style="text-align:center;font-weight:bold">$Text</div>
Die Variable $Text wird nun mit dem aktuellen Wert ersetzt. Angenommen obige Zeile wird im Template titel gespeichert, so führt der Einbau in eine andere Seite durch...
<include src=titel Text=Einleitung>
...zu folgender Ausgabe:
 
Eine Reihe von Werten werden von baseportal in Spezialvariablen bereitgehalten. Sie beginnen (fast) immer mit einem Unterstrich _. Obwohl es möglich ist, sollten Sie also auf eigene Variablen, die mit einem Unterstrich beginnen, verzichten. 
| Name | Beschreibung | 
|---|---|
| $_db | Name der zuletzt genutzten Datenbank | 
| $_id | ID des Datensatzes | 
| $htx | aufgerufene Seite (über die URL, "..baseportal.pl?htx=$htx") | 
| $_loop | fortlaufende Nummer der geholten Datensätze | 
| $_range | Ausgabebereich Start | 
| $_range_length | Ausgabebereich Anzahl | 
| $_amount | Anzahl Datensätze die beim letzten Abruf tatsächlich geholt wurden. | 
| $_amount_query | Anzahl Datensätze die beim letzten Abruf ohne "range" geholt worden wären. | 
| $_amount_all | Anzahl Datensätze die in der zuletzt genutzten Datenbank insgesamt enthalten sind | 
| Name | Beschreibung | 
|---|---|
| %_cgi | Werte die über CGI (GET oder POST) mit "=" übergeben wurden(z.B. Farbe=Rot) | 
| %_get | Werte die über CGI, in Tags oder über eine Datenbank-Abfrage gesetzt wurden (z.B. Farbe=Rot) | 
| %_sel | Abfragewerte (z.B. Name==a) | 
| %_put | Zu schreibende Werte (z.B. Name:=Hans) | 
| %_put_last | Tatsächlich geschriebene Werte | 
| $_put_id | ID des zuletzt geschriebenen Datensatzes | 
| %_raw | Ungefilterte Ausgabe von Feldern (z.B. bei Datum, Link oder Email) - man erhält den tatsächlichen Inhalt des Feldes | 
| %_loop | Enthält den aktuellen Datensatz bei <loop> oder get; get_next(); | 
| %_cookies | Die vom Browser übermittelten "Cookies" | 
Durch %_cgi und %_get können auch Parameter abgefragt werden, die nicht über Variablen zugänglich sind, weil sie für Variablennamen unzulässige Zeichen enthalten (z.B: Leerzeichen, Sonderzeichen usw.) oder weil Sie durch eigene Variablen überschrieben wurden. Beispiele: $_get{"Mein Name"}; $_cgi{"12345"};
| Name | Beschreibung | 
|---|---|
| $uid | Name des Nutzers (über die URL) | 
| $upw | Passwort des Nutzers (über die URL, wird bei der Anmeldung übermittelt) | 
| $sid | Session-Id des Nutzers (über die URL) | 
| $_user | Name des angemeldeten Nutzers. Definiert leer, wenn Anmeldung fehlgeschlagen | 
| %_user | Feldinhalte der Nutzer-Datenbank des angemeldeten Nutzers | 
| $_session | Session-Id des Nutzers | 
| %_session | Hash zum Weiterreichen von (internen) Session-Variablen | 
| Name | Beschreibung | 
|---|---|
| $_out | Enthält den bisher ausgegebenen Text. | 
| $_outx | Enthält die bisher ausgegebenen Statusmeldungen. | 
| $_error | Fehlername des letzten Fehlers | 
| %_error | enthält (sofern vorhanden) alle verfügbaren Informationen über den letzten Fehler: name => nochmals den Fehlernamen des letzten Fehlers text => Ausführliche Fehlerbeschreibung des letzten Fehlers in der ausgewählten Sprache line => Zeilennummer des Scripts, bei der der Fehler aufgetreten ist htx => Name des Templates, in dem der Fehler aufgetreten ist from => Funktion in der der Fehler aufgetreten ist | 
| $_error_mode | ungesetzt/leer = Fehler an der Stelle des Auftretens ausgeben top = gesammelt zu Beginn bottom = gesammelt am Ende no = keine Fehler ausgeben | 
| @_error | Array von %_error-Hashes: Alle gesammelten (noch nicht ausgegebenen) Fehler also $_error[0]{name} wäre der Name des ersten noch nicht ausgegebenen Fehlers | 
| $_error_handler | Übergebene Routine wird im Fehlerfall ausgeführt | 
| Name | Beschreibung | 
|---|---|
| $_ | Enthält im "Ende"-Code den Inhalt des eingeschlossenen Bereichs | 
| %_ | Die Parameter des Tags aufgeschlüsselt nach Name=Wert | 
| $_tag | Name des Tags (Nur bei Name=* sinnvoll) | 
| @_parents | Die umschliessenden Tags | 
| $_query | Die Parameter des Tags als kompletter Text | 
| $_begintag | Wenn gesetzt, befindet sich der Code beim Anfangstag | 
| $_empty | Wenn gesetzt, wurde das Tag als markiert (<tag />) | 
| Name | Beschreibung | 
|---|---|
| $_REMOTE_ADDR | IP des Nutzers | 
| $_REMOTE_PORT | Port über den die Seite aufgerufen wurde | 
| $_HTTP_USER_AGENT | Browser der zum Abruf genutzt wurde | 
| $_HTTP_REFERER | URL der Seite, die davor aufgerufen wurde | 
| Name Beschreibung | 
|---|
| $_fullsearch Suchbegriffe | 
| $_fullsearch_range Starteintrag für die Volltextsuche | 
| $_fullsearch_range_length Anzahl der zu durchsuchenden Einträge | 
| $_fullsearch_match Anzahl der zu findenden Treffer | 
| $_fullsearch_match_pos Eine Position nach dem zuletzt gefundenen Treffer | 
| $_fullsearch_amount Anzahl der bei der Volltextsuche gefundenen Treffer | 
| $_fullsearch_regex Muster um im Text die Suchtexte zu markieren |