Monday, May 9, 2011

Perl ийн хувьсагчийн төрөл

Perl хувьсагчын 3 төрөл байдаг.
* Scalar
* Array
* Hash
Scalar хувьсагчын төрөл
Scalar хувьсагчын төрөл нь энгийн утгыг хадгалдаг


my $animal = "camel";
my $answer = 42;

scalar хувьсагч нь string, float point numbers, integer хадгалж чадна. Perl шаардлага бол эдгээрийн хооронд автоматаар хөрвүүлэлт хийдэг.


print $animal;
print "The animal is $animal\n";
print "The square of $answer is ", $answer * $answer, "\n";

анзаарвал $ тэмдгийг scalar хувьсагчын өмнө хэрэглэнэ

жишээ нь:

#!/usr/bin/perl

$number = "5";
$exponent = "2 ** 8";
$string = "Hello, PERL!";
$float = 12.39;

# We can also assign a scalar an empty (undefined) value:
$nothing = undef;
# Printing all the above values
print "$number\n";
print "$exponent\n";
print "$string\n";
print "$float\n";
print "There is nothing: $nothing\n";


5
2 ** 8
Hello, PERL!
12.39
There is nothing:

Array хувьсагчын төрөл

my @animals = ("camel", "llama", "owl");
my @numbers = (23, 42, 69);
my @mixed = ("camel", 42, 1.23);

эдгээр утгуудыг хадгалж болно.

массив хувьсагчаас элементийг нь авахдаа


print $animals[0]; # prints "camel"
print $animals[1]; # prints "llama"
гэж авна массивын нэг элемент нь scalar хувьсагч бөгөөд өмнө нь $ тэмдэг тавьж байна.
хэрэв та массивын хамгийн сүүлийн элементийг авахыг хүсвэл $#array гэж хандаж болно . print $mixed[$#mixed]; # last element, prints 1.23
print @animals гэвэл массивын элементийн тоог хэвлэнэ.
массиваас олон утгыг авах хэд хэдэн арга байдаг.


@animals[0,1]; # ("camel", "llama");
@animals[0..2]; # ("camel", "llama", "owl");
@animals[1..$#animals]; # бүх элементийг өгнө


массив дээр хэдэн бэлэн функцуудыг ашиглаж болно.
жишээ нь: sort, reverse гэх мэт

my @sorted = sort @animals; #animals массивийг эрэмбэлээд sorted массивт хадгалж байна.
my @backwards = reverse @numbers; #animals массивийг урвуулж backwards массивт хадгалж байна.


Массиваас элемент устгах нэмэх
push(): массивийн төгсгөлд элемент нэмэх
unshift(): массивийн эхэнд элемент нэмэх
pop(): төгсгөлөөс устгах
shift() : эхнээс нь устгах


#!/usr/bin/perl

# Массив тодорхойлох
@coins = ("Quarter","Dime","Nickel");
print "First Statement : @coins";
print "\n";

# массивийн төгсгөлд элемент нэмэх
push(@coins, "Penny");
print "Second Statement : @coins";
print "\n";
# массивийн эхэнд элемент нэмэх
unshift(@coins, "Dollar");
print "Third Statement : @coins";
print "\n";

# төгсгөлөөс устгах
pop(@coins);
print "Fourth Statement : @coins";
print "\n";
# эхнээс нь устгах
shift(@coins);
print "Fifth Statement : @coins";
print "@coins";

Дараах үр дүн гарна
First Statement : Quarter Dime Nickel
Second Statement : Quarter Dime Nickel Penny
Third Statement : Dollar Quarter Dime Nickel Penny
Fourth Statement : Dollar Quarter Dime Nickel
Fifth Statement : Quarter Dime Nickel

Hash хувьсагчын төрөл
hash хувьсагчийн төрөл нь түлхүүр болон утга гэсэн хослолтой байна. Тодорхой түлхүүрт харгалзах утгыг хадгалдаг.
key нь массивийн индекстэй төстэй гэж болно. Түлхүүр нь string, integer утга агуулж болно.

my %fruit_color = ("apple", "red", "banana", "yellow"); гэж тодорхойлохоос гадна
my %fruit_color = (
apple => "red",
banana => "yellow",
);

гэж бичиж болно.

hash ийн элементийг авахдаа
$fruit_color{"apple"}; # gives "red"
гэж авна.

keys(), values() perl ийн built-in function ашиглаад Түлхүүр болон утгуудыг нь массит хадгалж болно
my @fruits = keys %fruit_colors;
my @colors = values %fruit_colors;

perl дээр хувьсагчын нэр case sensetive $foo $FOO ялгаатай юм.

Хувьсагчийн амьдарлын хугацаа
өмнөх жишээнүүд дээр дараах syntax байнга гарсан
my $var = "value";
энд уул нь my шаардлаггүй л дээ

No comments:

Post a Comment