Perl: განსხვავება გადახედვებს შორის

4 ბაიტი დაემატა ,  13 წლის წინ
ვიკიფიკაცია + კატ. შეცვლა
(ბოტის შეცვლა: bg:Пърл (език за програмиране))
(ვიკიფიკაცია + კატ. შეცვლა)
[[სურათი:Programming-republic-of-perl.gif|thumb|333px|right|ლოგოტიპი]]
 
'''პერლი''' (PERL), დაპროგრამების სტრუქტურული და დინამიური ენა, შექმნილი 1987 წელს ლარი უოლის მიერ. პერლში გაერთიანებულია C-ის, shell–ისshell-ის, awk–სawk-ს, sed–ისsed-ის, Lisp–ისLisp-ის და დაპროგრამების სხვა ენების ნიშან–თვისებებინიშან-თვისებები.
 
== ზოგადი მიმოხილვა ==
პერლ–ისპერლ-ის ოფიციალური საინფორმაციო წყაროების ცნობით პერლი არის: "ზოგადი დანიშნულების დაპროგრამების ენა, რომელიც თავდაპირველად შეიქმნა ტექსტური მანიპულაციებისათვის, თუმცა ახლა გამოიყენება მრავალი ტიპის ამოცანების გადაჭრისას, მათ შორის სისტემური ადმინისტრირების, ვებ–განვითარებისვებ-განვითარების, ქსელური პროგრამირების, GUI–ისGUI-ის (მომხმარებლის გრაფიკული ინტერფეისის) განვითარების და სხვ. ენის შემქმნელები შეეცადნენ, რომ ენა ყოფილიყო უფრო პრაქტიკული და ადვილად გამოსაყენებადი, ვიდრე ლამაზი და ესთეტური. მისი უმნიშვნელოვანესი მახასიათებლები არის: გამოყენების სიადვილე, ობიექტურად ორიენტირებული და სტრუქტურული პროგრამირების მხარდაჭერა, ტექსტის ეფექტური დამუშავების შიგ ჩაშენებული მექანიზმი და მოდულების უზარმაზარი ბიბლიოთეკა.
==ენის სტრუქტურა==
 
===მაგალითი===
== ენის სტრუქტურა ==
პერლ–ზე დაწერილი Hello world-ის კანონიკური პროგრამა ასე გამოიყურება:
=== მაგალითი ===
პერლ–ზეპერლ-ზე დაწერილი Hello world-ის კანონიკური პროგრამა ასე გამოიყურება:
 
<nowiki>#</nowiki>!/usr/bin/perl
print "Hello, world!\n";
 
პირველი სტრიქონი ეუბნება იუნიქსის ოპერაციულ სისტემა თუ სად მიაგნოს პერლის ინტერპრეტატორს. მეორე სტრიქონი ბეჭდავს ეკრანზე Hello, world–სworld-ს და კურსორი ახალ ხაზზე გადააქვს.
 
=== მონაცემთა ტიპები ===
პერლ–სპერლ-ს თავის არსენალში მონაცემთა სამი ფუნდამენტური ტიპი გააჩნია: სკალარი, მასივი/სია და ჰეშ ცხრილი:
* სკალარი არის ერთეულოვანი მონაცემი. ის შეიძლება იყოს რიცხვი, სტრიქონი ან მითითება.
* სია არის სკალართა მოწესრიგებული მიმდევრობა.
*ჰეშ–ცხრილი ჰეშ-ცხრილი (ასოციაციური მასივი) ქმნის ასოციაციურ კავშირებს სტრიქონებსა და სკალარებს შორის, რომელთაგან სტრიქონებს "გასაღები"„გასაღები“ ეწოდებათ, სკალარებს კი "მნიშვნელობა"„მნიშვნელობა“
თითოეულ ცვლადს წინ წამძღვარებული აქვს განსაზღვრული სიმბოლო, რომლის საშუალებითაც ინტერპრეტატორი არკვევს რომელი ტიპის მონაცემთა ტიპთან გვაქვს საქმე.
 
$$foo # სკალარი
@foo # სია
%foo # ჰეშ–ცხრილი
სკალარულ ცვლადებს რიცხვები ჩვეულებრივი გზით ენიჭებათ. სტრიქონი კი ბრჭყალებით უნდა იყოს შემოსაზღვრული.
 
$$n = 42;
$$name = "joe";
$$color = 'red';
 
სიის ტიპის ცვლადის ინიციალიზაცია ხდება შემდეგნაირად, ფრჩხილებში მოთავსებული, მძიმეებით გამოყოფილი ელემენტების საშუალებით:
@scores = (32, 45, 16, 5);
 
ჰეშ–ცხრილისჰეშ-ცხრილის ინიციალიზაცია ხდება გასაღები–მნიშვნელობისგასაღები-მნიშვნელობის წყვილის განსაზღვრით:
%favorite = (joe => 'red',
sam => 'blue');
 
სიის თითოეულ ელემენტს შეიძლება მივაგნოთ ინდექსის საშუალებით, ჰეშ–ცხრილისასჰეშ-ცხრილისას კი გასაღების მითითებით. სიის ინდექსი უნდა იყოს მოთავსებული კუთხურ ფრჩხილებში, ჰეშ–ცხრილისჰეშ-ცხრილის გასაღები კი — ფიგურულში.
 
$$scores[2] # @scores მე–2 სიის ელემენტი
$$favorite{joe} # %favorite ჰეშ–ცხრილის ელემენტი
 
რამდენიმე ელემენტს შეიძლება მივწვდეთ სიის იდენტიფიკატორის <tt>@</tt> საშუალებით:
სიის ელემენტთა რაოდენობა შეიძლება გავიგოთ, თუ ამ სიას სკალარულ ცვლადს მივანიჭებთ
 
$$count = @friends;
 
ჰეშ–ცხრილიდანჰეშ-ცხრილიდან გასაღებების ან მნიშვნელობების მასივის ამოღება შეიძლება შემდეგნაირად:
 
@names = keys %address;
@addresses = values %address;
 
=== მართვის სტრუქტურები ===
პერლში რამდენიმე ტიპის მართვის სტრუქტურაა.
ბლოკურად ორიენტირებული მართვის სტრუქტურები, მსგავსი C-ს Java–სJava-ს ბლოკურად ორიენტირებული მართვის სტრუქტურების. განშტოების ოპერატორის თუ ციკლის ოპერატორის პირობა შემოსაზღვრული უნდა იყოს ფრჩხილებით, მართვის ბლოკი კი ფიგურული ფრჩხილებით:
 
''label'' while ( ''cond'' ) { ... }
''statement'' foreach ''list'' ;
 
=== ქვეპროგრამები ===
ქვეპროგრამა განისაზღვრება sub ოპერატორის საშუალებით და შემდგომ შეიძლება გამოვიძახოთ სახელის საშუალებით. ქვეპროგრამის განსაზღვრა შეიძლება პროგრამის ნებისმიერ ადგილას. ქვეპროგრამის გამოძახების დროს ქვეპროგრამის სახელი აუცილებლად უნდა იყოს დასრულებული ფრჩხილებით და წინადადების დასრულების ოპერატორით (;).
 
 
ქვეპროგრამას შეიძლება გადავცეთ ერთი ან რამდენიმე არგუმენტი:
foo $$x, @y, %z;
 
ქვეპროგრამის პარამეტრების განსაზღვრა საჭირო არ არის. რამდენი არგუმენტიც არ უნდა გადავცეთ ქვეპროგრამის, მათ შეიძლება მივწვდეთ <tt>@_</tt>–ს-ს საშუალებით.
 
<tt>@_</tt> ელემენტებს შეიძლება მივწვდეთ ინდექსის მითითებით შემდეგნაირად:
 
$$_[0], $$_[1]
 
ქვეპროგრამა შესაძლებელია აბრუნებდეს მნიშვნელობასაც:
 
return 42, $$x, @y, %z;
 
=== რეგულარული გამოსახულებები ===
 
პერლი შეიცავს სპეციალიზებული სინტაქსის მქონე გამოსახულებებს, რეგულარულ გამოსახულებებს, რომლებიც ამარტივებენ ტექსტთან ურთიერთობას.
რეგულარულ გამოსახულებებს პერლის გარდა იყენებს მრავალი პლატფორმა თუ ენა, დღესდღეობით რეგულარული გამოსახულებები აღიარებული სტანდარტია.
 
$$x = "abcdefgh";
$$x =~ m/abc/
 
მოცემული გამოსახულება იქნება true თუ სტრიქონი შეიცავს მითითებული სიმბოლოების წყებას, თუ არადა false.
 
შესაძლებელია მოდიფიკატორების მითითება, მაგალითად:
$$x =~ m/abc/i; # case-insensitive pattern match
$$x =~ s/abc/aBc/g; # global search and replace
 
ერთი შეხედვით რეგულარული გამოსახულება შეიძლება იყოს ძალიან ჩახლართული და ძნელად გარჩევადი.
 
$$x =~ s/^([0-2]\d:[0-5]\d:[0-5]\d)\s+\[([^\]]+)\]\s+(.*)$$/g;
 
== რესურსები ინტერნეტში ==
* [http://www.perl.org/ Perl.org] &ndash; — პერლის მთავარი საიტი
* [http://perldoc.perl.org/ Perldoc at Perl.org] &ndash; — პერლის ონლაინ დოკუმენტაცია
 
[[კატეგორია:პროგრამირებისდაპროგრამების ენები]]
==ინტერნეტის რესურსები==
*[http://www.perl.org/ Perl.org] &ndash; პერლის მთავარი საიტი
*[http://perldoc.perl.org/ Perldoc at Perl.org] &ndash; პერლის ონლაინ დოკუმენტაცია
 
[[als:Perl]]
19 226

რედაქტირება