Perl-Datentypen

Perl ist eine schwach typisierte Sprache, daher müssen Variablen keinen Typ angeben. Der Perl-Interpreter wählt automatisch den passenden Typ basierend auf dem Kontext aus.

Perl hat drei grundlegende Datentypen: Skalare, Arrays und Hashes. Im Folgenden werden diese drei Datentypen beschrieben:

Number Typ und Beschreibung
1 Skalar

Ein Skalar ist der einfachste Datentyp in Perl. Variablen dieses Datentyps können Zahlen, Zeichenketten oder Gleitkommazahlen sein, ohne strikte Unterscheidung. Bei der Verwendung fügen Sie ein$vor dem Variablennamen hinzu, um anzugeben, dass es sich um einen Skalar handelt. Zum Beispiel:

$myfirst=123;     #数字123 

$mysecond="123";   #字符串123 
2 Array

Array-Variablen verwenden das Zeichen@am Anfang, wobei die Indizes bei 0 beginnen, zum Beispiel:@arr=(1,2,3)

@arr=(1,2,3)
3 Hash

Ein Hash ist eine ungeordneteSchlüssel/Wert-Paar-Sammlung. Sie können Schlüssel als Indizes verwenden, um Werte zu erhalten. Hash-Variablen verwenden das Zeichen%am Anfang.

%h=('a'=>1,'b'=>2); 

Numerische Literale

1. Ganzzahlen

Perl speichert Ganzzahlen tatsächlich in den Gleitkommaregistern Ihres Computers, daher werden sie faktisch als Gleitkommazahlen behandelt.

Auf den meisten Computern können Gleitkommaregister etwa 16 Ziffern speichern; alles, was länger ist, wird verworfen. Ganzzahlen sind tatsächlich ein Spezialfall von Gleitkommazahlen.

Ganzzahlvariablen und Operationen:

$x = 12345;
if (1217 + 116 == 1333) {
    # 执行代码语句块
}

Oktal- und Hexadezimalzahlen: Oktalzahlen beginnen mit 0, Hexadezimalzahlen beginnen mit 0x. Zum Beispiel:

$var1 = 047;    # 等于十进制的39
$var2 = 0x1f;   # 等于十进制的31

2. Gleitkommazahlen

Gleitkommadaten wie: 11.4, -0.3, .3, 3., 54.1e+02, 5.41e03.

Gleitkommaregister können Gleitkommazahlen normalerweise nicht präzise speichern, was zu Fehlern führt. Bei Operationen und Vergleichen ist besondere Vorsicht geboten. Der Exponentenbereich liegt normalerweise zwischen -309 und +308.

Beispiel

#!/usr/bin/perl $value = 9.01e+21 + 0.01 - 9.01e+21; print ("Der erste Wert ist:", $value, "\n"); $value = 9.01e+21 - 9.01e+21 + 0.01; print ("Der zweite Wert ist:", $value, "\n");

Nach Ausführung des obigen Programms ist die Ausgabe:

第一个值为:0
第二个值为:0.01

3. Zeichenketten

Zeichenketten in Perl werden mit einem Skalar dargestellt. Die Art und Weise, sie zu definieren, ist sehr ähnlich wie in C, aber in Perl werden Zeichenketten nicht mit \0 abgeschlossen.

Der Unterschied zwischen doppelten Anführungszeichen und einfachen Anführungszeichen in Perl: Doppelte Anführungszeichen können einige Escape-Zeichen und Variablen korrekt interpretieren, während einfache Anführungszeichen sie nicht interpretieren können und sie unverändert ausgeben.

Die Verwendung einfacher Anführungszeichen ermöglicht jedoch mehrzeiligen Text, wie unten gezeigt:

#!/usr/bin/perl 

$var='这是一个使用

多行字符串文本

的例子';

print($var);

Nach Ausführung des obigen Programms ist die Ausgabe:

This is an example of using

multi-line string text

Einige gängige Escape-Zeichen in Perl sind in der folgenden Tabelle aufgeführt:

Escape-Zeichen Bedeutung
\\ Backslash
\' Einfaches Anführungszeichen
\" Doppeltes Anführungszeichen
\a Systemglocke
\b Rücktaste
\f Seitenvorschub
\n Zeilenumbruch
\r Wagenrücklauf
\t Horizontaler Tabulator
\v Vertikaltabulator
\0nn Erzeugt eine Zahl im Oktalformat
\xnn Erzeugt eine Zahl im Hexadezimalformat
\cX Steuerzeichen; x kann ein beliebiges Zeichen sein
\u Erzwingt Großschreibung für das nächste Zeichen
\l Erzwingt Kleinschreibung für das nächste Zeichen
\U Erzwingt Großschreibung für alle Zeichen
\L Erzwingt Kleinschreibung für alle Zeichen
\Q Fügt bis \E einen Backslash zu Nicht-Wort-Zeichen hinzu
\E Beendet \L, \U, \Q

Beispiel

Als Nächstes schauen wir uns die Verwendung von einfachen Anführungszeichen, doppelten Anführungszeichen und Escape-Zeichen genauer an:

Beispiel

#!/usr/bin/perl # Ein Zeilenumbruch \n in doppelten Anführungszeichen ist wirksam $str = "Example\nwww.example.com"; print "$str\n"; # Ein Zeilenumbruch \n in einfachen Anführungszeichen ist unwirksam $str = 'Example \nwww.example.com'; print "$str\n"; # Nur R wird in Großbuchstaben umgewandelt $str = "\uexample"; print "$str\n"; # Alle Buchstaben werden in Großbuchstaben umgewandelt $str = "\Uexample"; print "$str\n"; # Die angegebenen Teile werden in Großbuchstaben umgewandelt $str = "Willkommen bei \Uexample\E.com!"; print "$str\n"; # Fügt einen Backslash zu Nicht-Wort-Zeichen bis \E hinzu $str = "\QWillkommen in example's Familie"; print "$str\n";

Die Ausgabe des obigen Beispiels ist:

Andere Erweiterungen