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