File: tokens.htm

package info (click to toggle)
selfhtml 8.1.2-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, jessie, jessie-kfreebsd, squeeze, stretch, wheezy
  • size: 28,076 kB
  • ctags: 4,161
  • sloc: xml: 614; java: 375; makefile: 8
file content (132 lines) | stat: -rw-r--r-- 8,415 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>SELFHTML: Perl / Perl-Sprachelemente / Tokens</title>
<link rel="stylesheet" type="text/css" href="../../src/selfhtml.css">
<meta name="description"    content="Was Tokens in Perl sind, und welche Tokens es gibt.">
<meta name="keywords"       content="SELFHTML, Perl, Tokens, __FILE__, __LINE__, __DATA__, __PACKAGE__, __END__">
<meta name="author"         content="Redaktion SELFHTML, selfhtml81@selfhtml.org">
<meta name="robots"         content="noindex, nofollow">
<meta name="DC.Publisher"   content="SELFHTML e. V.">
<meta name="DC.Date"        content="2005-08-18T05:08:52+02:00">
<meta name="DC.Identifier"  content="http://de.selfhtml.org/perl/sprache/tokens.htm">
<meta name="DC.Language"    content="de">
<meta name="DC.Rights"      content="../../editorial/copyright.htm">
<meta name="DC.Date.created" content="2001-10-27T08:00+01:00">
<meta name="SELF.Pagetype"  content="page">
<link rel="alternate" type="application/atom+xml" title="SELFHTML-Weblog (Atom, gesamt)" href="http://aktuell.de.selfhtml.org/weblog/atom-feed">
<link rel="alternate" type="application/rss+xml" title="SELFHTML-Weblog (RSS, Auszge)" href="http://aktuell.de.selfhtml.org/weblog/rss-feed">
<link rel="shortcut icon" type="image/x-icon" href="../../src/favicon.ico">
<link rel="author" title="Impressum" href="../../editorial/impressum.htm">
<link rel="contents" title="Inhaltsverzeichnis" href="../../navigation/inhalt.htm">
<link rel="index" title="Stichwortverzeichnis" href="../../navigation/stichwort.htm">
<link rel="search" title="Suche" href="../../navigation/suche/index.htm">
<link rel="help" title="Hilfe" href="../../editorial/index.htm">
<link rel="copyright" title="Urheberrecht" href="../../editorial/copyright.htm">
<link rel="top" title="SELFHTML" href="../../index.htm">
<link rel="up" title="Perl-Sprachelemente" href="index.htm">
<link rel="next" title="Objektorientiertes Programmieren" href="objekte.htm">
<link rel="prev" title="Subroutinen" href="subroutinen.htm">
<link rel="first" title="CGI-notwendige Anweisungen in Perl" href="cginotwendig.htm">
<link rel="last" title="CGI-typische Aufgaben in Perl" href="cgitypisch.htm">
</head>
<body>

<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr>
<td colspan="2" class="nav"><a class="an" name="top"><img src="../../src/refkap.gif" width="16" height="13" alt="Teil von"></a> <a href="../../index.htm">SELFHTML</a>/<a href="../../navigation/index.htm" target="_parent" class="navh">Navigationshilfen</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="../index.htm">Perl</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="index.htm">Perl-Sprachelemente</a></td>
</tr>
<tr>
<td class="doc" width="110"><a href="../../index.htm"><img src="../../src/logo.gif" width="106" height="109" border="0" alt="SELFHTML"></a></td>
<td class="docbot" width="100%"><h1 class="ph1">Tokens</h1></td>
</tr>
<tr>
<td class="doctop">
<img src="../../src/dokx.gif" width="30" height="20" vspace="6" alt="Informationsseite">
</td>
<td valign="top" nowrap="nowrap">
<p>
<img src="../../src/down.gif" width="14" height="10" alt="nach unten">&nbsp;<a href="#allgemeines">Zweck von Tokens und reservierte Tokens</a><br>
</p>
</td>
</tr><tr><td colspan="2" class="doc">&nbsp;<a href="#bottom"><img src="../../src/down.gif" width="14" height="10" border="0" alt="nach unten"></a>&nbsp;</td></tr>
</table>



<h2><a class="an" name="allgemeines">Zweck von Tokens und reservierte Tokens</a></h2>

<p>Tokens dienen in Perl dazu, logische Abschnitte in einem Script zu markieren. Deshalb sehen die Tokens sehr auffllig aus (z.B. <code>__DATA__</code>). 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 Flle, wo es sinnvoll ist, und einige Flle, wo es erforderlich ist.</p>

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

<p>Hinter den Tokens <code>__END__</code> und <code>__DATA__</code> 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 mssen.<br>
Der in Modulen hinter <code>__DATA__</code> und im Hauptscript hinter <code>__DATA__</code> oder <code>__END__</code> stehende Text kann mit dem speziellen Dateihandle <code>DATA</code> vom Programm eingelesen werden.</p>

<h3 class="xmp">Beispiel:</h3>

<pre>
#!/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, &lt;froetzel@example.org&gt;

=cut
</pre>

<h3 class="xpl">Erluterung:</h3>

<p>Das Beispiel zeigt, was typischerweise hinter dem Token <code>__END__</code> notiert wird. Dort folgt eine Dokumentation und das Impressum zum Script oder zum Modul. Fr diese Art von Dokumentation gibt es eine eigene Syntax, die so genannte <code>POD</code>-Syntax. Das Beispiel zeigt den typischen Aufbau einer Moduldokumentation. Solche Teile eines Scripts bzw. Moduls knnen mit dem Programm <var>perldoc</var>, das zum Lieferumfang von Perl gehrt, gelesen werden (siehe auch <img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="../module/intro.htm#perldoc">Moduldokumentationen lesen mit perldoc</a>).</p>

<p>Hinter den Tokens <code>__END__</code> und <code>__DATA__</code> kann durchaus auch noch Perl-Code notiert werden, beispielsweise spezielle <img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="subroutinen.htm">Subroutinen</a>. Der dort notierte Code kann aus dem Script heraus aufgerufen werden, wird aber vor dem Ausfhren des Scripts nicht von Perl kompiliert. Fehler in diesem Code werden also erst zur Laufzeit bemerkt.</p>



<table cellpadding="4" cellspacing="0" border="0" width="100%">
<tr><td colspan="2" class="doc">
&nbsp;<a href="#top"><img src="../../src/up.gif" width="14" height="10" border="0" alt="nach oben"></a>
</td></tr>
<tr><td class="doc"><a href="objekte.htm"><img src="../../src/next.gif" width="10" height="10" border="0" hspace="10" alt="weiter"></a></td>
<td width="100%"><img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="objekte.htm">Objektorientiertes Programmieren</a>
</td></tr>
<tr>
<td class="doc"><a href="subroutinen.htm"><img src="../../src/prev.gif" width="10" height="10" border="0" hspace="10" alt="zurck"></a></td>
<td><img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="subroutinen.htm">Subroutinen</a>
</td>
</tr>
<tr><td colspan="2" class="doc">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="nav"><a class="an" name="bottom"><img src="../../src/refkap.gif" width="16" height="13" alt="Teil von"></a> <a href="../../index.htm">SELFHTML</a>/<a href="../../navigation/index.htm" target="_parent" class="navh">Navigationshilfen</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="../index.htm">Perl</a> <img src="../../src/refkap.gif" width="16" height="13" alt="Teil von">&nbsp;<a href="index.htm">Perl-Sprachelemente</a></td>
</tr>
</table>

<p>&copy; 2007 <img src="../../src/dok.gif" width="15" height="10" alt="Seite">&nbsp;<a href="../../editorial/impressum.htm">Impressum</a></p>

</body>
</html>