SELFHTML: Perl / Perl-Sprachelemente / Tokens
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Was Tokens in Perl sind, und welche Tokens es gibt.
Keywords: SELFHTML, Perl, Tokens, __FILE__, __LINE__, __DATA__, __PACKAGE__, __END__
Date: 2005-08-18T05:08:52+02:00

| # Tokens
| Zweck von Tokens und reservierte Tokens

## Zweck von Tokens und reservierte Tokens

Tokens dienen in Perl dazu, logische Abschnitte in einem Script zu markieren. Deshalb sehen die Tokens sehr auffällig aus (z.B. `__DATA__`). Sie bestehen alle aus jeweils zwei Unterstrichen vorne und hinten und dazwischen einem groß geschriebenen Wort. Es besteht keine Pflicht, solche Tokens zu benutzen, es gibt jedoch Fälle, wo es sinnvoll ist, und einige Fälle, wo es erforderlich ist.

Folgende Tokens sind reserviert:
`__FILE__` steht für den Dateinamen des aktuellen Scripts,
`__LINE__` steht für die aktuelle Zeilennummer,
`__END__` (allein in einer Zeile) steht für das logische Ende eines Scripts oder Moduls (es kann danach jedoch noch Text und anderes folgen),
`__DATA__` (allein in einer Zeile) steht auch für das logische Ende eines Scripts oder Moduls,
`__PACKAGE__` steht für den Namen des aktuellen Namensraums.

Hinter den Tokens `__END__` und `__DATA__` kann z.B. Text notiert werden, der aber nicht mehr als Quellcode des Scripts interpretiert wird. Diese Technik wird bei Modulen gerne benutzt, um die Dokumentation zum Modul-Code direkt im Modul zu notieren, ohne den Perl-Parser damit aufzuhalten, die im Code stehende Dokumentation als solche erkennen zu müssen.
Der in Modulen hinter `__DATA__` und im Hauptscript hinter `__DATA__` oder `__END__` stehende Text kann mit dem speziellen Dateihandle `DATA` vom Programm eingelesen werden.

### Beispiel:

    #!/usr/bin/perl -w

    # Hier folgt der normale Code des Modul-Scripts ...

    __END__

    =head1 NAME

    MyModul::Irgendwas - tut dies und das

    =head1 SYNOPSIS

     require MyAnderesModul;
     my $Objekt = new MyModul::Irgendwas;
     my $Objekt->Methode($Objekt->Parameter);

    =head1 DESCRIPTION

    Das Modul tut irgendwas ...

    =head1 AUTHOR

    Fridolin Froetzel, <froetzel@example.org>

    =cut

### Erläuterung:

Das Beispiel zeigt, was typischerweise hinter dem Token `__END__` notiert wird. Dort folgt eine Dokumentation und das Impressum zum Script oder zum Modul. Für diese Art von Dokumentation gibt es eine eigene Syntax, die so genannte `POD`-Syntax. Das Beispiel zeigt den typischen Aufbau einer Moduldokumentation. Solche Teile eines Scripts bzw. Moduls können mit dem Programm perldoc, das zum Lieferumfang von Perl gehört, gelesen werden (siehe auch Moduldokumentationen lesen mit perldoc).

Hinter den Tokens `__END__` und `__DATA__` kann durchaus auch noch Perl-Code notiert werden, beispielsweise spezielle Subroutinen. Der dort notierte Code kann aus dem Script heraus aufgerufen werden, wird aber vor dem Ausführen des Scripts nicht von Perl kompiliert. Fehler in diesem Code werden also erst zur Laufzeit bemerkt.

| Objektorientiertes Programmieren
| Subroutinen

© 2007 Impressum