Perl - typy danych
Perl jest językiem o luźnych typach i nie ma potrzeby określania typu danych podczas używania go w programie. Interpreter Perla wybierze typ na podstawie kontekstu samych danych.
Perl ma trzy podstawowe typy danych: skalary, tablice skalarów i skróty skalarów, znane również jako tablice asocjacyjne. Oto kilka szczegółów na temat tych typów danych.
Sr.No. | Rodzaje i opis |
---|---|
1 | Scalar Skalary to proste zmienne. Są poprzedzone znakiem dolara ($). Skalar to liczba, łańcuch lub odniesienie. Odsyłacz to właściwie adres zmiennej, o czym przekonamy się w kolejnych rozdziałach. |
2 | Arrays Tablice to uporządkowane listy skalarów, do których uzyskujesz dostęp z indeksem numerycznym rozpoczynającym się od 0. Są one poprzedzone znakiem „at” (@). |
3 | Hashes Hashe to nieuporządkowane zestawy par klucz / wartość, do których uzyskujesz dostęp używając kluczy jako indeksów. Są poprzedzone znakiem procentu (%). |
Literały numeryczne
Perl przechowuje wszystkie liczby wewnętrznie jako liczby całkowite ze znakiem lub wartości zmiennoprzecinkowe o podwójnej precyzji. Literały liczbowe są określane w dowolnym z następujących formatów zmiennoprzecinkowych lub całkowitych -
Rodzaj | Wartość |
---|---|
Liczba całkowita | 1234 |
Ujemna liczba całkowita | -100 |
Punkt zmiennoprzecinkowy | 2000 |
Notacja naukowa | 16.12E14 |
Szesnastkowy | 0xffff |
Ósemkowe | 0577 |
Literały strunowe
Łańcuchy to sekwencje znaków. Zwykle są to wartości alfanumeryczne oddzielone cudzysłowami pojedynczymi (') lub podwójnymi ("). Działają podobnie jak cudzysłowy powłoki UNIX, w których można używać ciągów w pojedynczych cudzysłowach i podwójnych cudzysłowów.
Literały łańcuchowe w podwójnych cudzysłowach pozwalają na interpolację zmiennych, a ciągi w apostrofach nie. Istnieją pewne znaki poprzedzone ukośnikiem, mają specjalne znaczenie i są używane do reprezentacji jak nowa linia (\ n) lub tabulacja (\ t).
Możesz osadzić znaki nowej linii lub dowolną z poniższych sekwencji Escape bezpośrednio w swoich podwójnych cudzysłowach -
Sekwencja ewakuacyjna | Znaczenie |
---|---|
\\ | Ukośnik wsteczny |
\ ' | Pojedynczy cudzysłów |
\ " | Cudzysłów |
\za | Alert lub dzwonek |
\b | Backspace |
\fa | Form feed |
\ n | Nowa linia |
\ r | Powrót karetki |
\ t | Zakładka pozioma |
\ v | Zakładka pionowa |
\ 0nn | Tworzy liczby w formacie ósemkowym |
\ xnn | Tworzy liczby w formacie szesnastkowym |
\ cX | Znaki kontrolne, x może być dowolnym znakiem |
\ u | Wymusza następną wielką literę |
\ l | Wymusza na następnym znaku małe litery |
\ U | Wymusza pisanie wielkich liter we wszystkich kolejnych znakach |
\ L | Wymusza na wszystkich kolejnych znakach małe litery |
\ Q | Wszystkie kolejne znaki niealfanumeryczne należy ułożyć ukośnikiem odwrotnym |
\MI | End \ U, \ L lub \ Q |
Przykład
Zobaczmy ponownie, jak zachowują się ciągi znaków w przypadku pojedynczego cudzysłowu i podwójnego cudzysłowu. Tutaj użyjemy znaków ucieczki wymienionych w powyższej tabeli i użyjemy zmiennej skalarnej do przypisania wartości łańcuchowych.
#!/usr/bin/perl
# This is case of interpolation.
$str = "Welcome to \ntutorialspoint.com!";
print "$str\n";
# This is case of non-interpolation.
$str = 'Welcome to \ntutorialspoint.com!';
print "$str\n";
# Only W will become upper case.
$str = "\uwelcome to tutorialspoint.com!";
print "$str\n";
# Whole line will become capital.
$str = "\UWelcome to tutorialspoint.com!";
print "$str\n";
# A portion of line will become capital.
$str = "Welcome to \Ututorialspoint\E.com!";
print "$str\n";
# Backsalash non alpha-numeric including spaces.
$str = "\QWelcome to tutorialspoint's family";
print "$str\n";
To da następujący wynik -
Welcome to
tutorialspoint.com!
Welcome to \ntutorialspoint.com!
Welcome to tutorialspoint.com!
WELCOME TO TUTORIALSPOINT.COM!
Welcome to TUTORIALSPOINT.com!
Welcome\ to\ tutorialspoint\'s\ family