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

[შეუმოწმებელი ვერსია][შეუმოწმებელი ვერსია]
შიგთავსი ამოიშალა შიგთავსი დაემატა
ბოტის დამატება: my:Perl
No edit summary
ხაზი 10:
პერლ-ზე დაწერილი Hello world-ის კანონიკური პროგრამა ასე გამოიყურება:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
!/usr/bin/perl
print "Hello, world!\n";
</source>
</div>
 
პირველი სტრიქონი ეუბნება იუნიქსის ოპერაციულ სისტემა თუ სად მიაგნოს პერლის ინტერპრეტატორს. მეორე სტრიქონი ბეჭდავს ეკრანზე Hello, world-ს და კურსორი ახალ ხაზზე გადააქვს.
Line 24 ⟶ 26:
თითოეულ ცვლადს წინ წამძღვარებული აქვს განსაზღვრული სიმბოლო, რომლის საშუალებითაც ინტერპრეტატორი არკვევს რომელი ტიპის მონაცემთა ტიპთან გვაქვს საქმე.
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$foo # სკალარი
Line 29 ⟶ 32:
%foo # ჰეშ–ცხრილი
</source>
</div>
 
სკალარულ ცვლადებს რიცხვები ჩვეულებრივი გზით ენიჭებათ. სტრიქონი კი ბრჭყალებით უნდა იყოს შემოსაზღვრული.
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$n = 42;
Line 37 ⟶ 42:
$color = 'red';
</source>
</div>
 
სიის ტიპის ცვლადის ინიციალიზაცია ხდება შემდეგნაირად, ფრჩხილებში მოთავსებული, მძიმეებით გამოყოფილი ელემენტების საშუალებით:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
@scores = (32, 45, 16, 5);
</source>
</div>
 
ჰეშ-ცხრილის ინიციალიზაცია ხდება გასაღები-მნიშვნელობის წყვილის განსაზღვრით:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
%favorite = (joe => 'red',
sam => 'blue');
</source>
</div>
 
სიის თითოეულ ელემენტს შეიძლება მივაგნოთ ინდექსის საშუალებით, ჰეშ-ცხრილისას კი გასაღების მითითებით. სიის ინდექსი უნდა იყოს მოთავსებული კუთხურ ფრჩხილებში, ჰეშ-ცხრილის გასაღები კი — ფიგურულში.
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$scores[2] # @scores მე–2 სიის ელემენტი
$favorite{joe} # %favorite ჰეშ–ცხრილის ელემენტი
</source>
</div>
 
რამდენიმე ელემენტს შეიძლება მივწვდეთ სიის იდენტიფიკატორის <tt>@</tt> საშუალებით:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
@scores[2, 3, 1] # @scores სიის სამი ელემენტი
@favorite{'joe', 'sam'} # %favorite ორი გასაღების მნიშვნელობა
</source>
</div>
 
სიის ელემენტთა რაოდენობა შეიძლება გავიგოთ, თუ ამ სიას სკალარულ ცვლადს მივანიჭებთ
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$count = @friends;
</source>
</div>
ჰეშ-ცხრილიდან გასაღებების ან მნიშვნელობების მასივის ამოღება შეიძლება შემდეგნაირად:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
@names = keys %address;
@addresses = values %address;
</source>
</div>
 
=== მართვის სტრუქტურები ===
Line 81 ⟶ 99:
ბლოკურად ორიენტირებული მართვის სტრუქტურები, მსგავსი C-ს Java-ს ბლოკურად ორიენტირებული მართვის სტრუქტურების. განშტოების ოპერატორის თუ ციკლის ოპერატორის პირობა შემოსაზღვრული უნდა იყოს ფრჩხილებით, მართვის ბლოკი კი ფიგურული ფრჩხილებით:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
''label'' while ( ''cond'' ) { ... }
Line 91 ⟶ 110:
if ( ''cond'' ) { ... } elsif ( ''cond'' ) { ... } else { ... }
</source>
</div>
 
თუ კი ბლოკი მოიცავს მხოლოდ ერთ წინადადებას, მაშინ შესაძლებელია ასეთი ჩანაწერიც ფიგურული ფრჩხილების გარეშე:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
''statement'' if ''cond'' ;
Line 101 ⟶ 122:
''statement'' foreach ''list'' ;
</source>
</div>
 
=== ქვეპროგრამები ===
ქვეპროგრამა განისაზღვრება sub ოპერატორის საშუალებით და შემდგომ შეიძლება გამოვიძახოთ სახელის საშუალებით. ქვეპროგრამის განსაზღვრა შეიძლება პროგრამის ნებისმიერ ადგილას. ქვეპროგრამის გამოძახების დროს ქვეპროგრამის სახელი აუცილებლად უნდა იყოს დასრულებული ფრჩხილებით და წინადადების დასრულების ოპერატორით (;).
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
foo();
Line 110 ⟶ 133:
foo;
</source>
</div>
 
ქვეპროგრამას შეიძლება გადავცეთ ერთი ან რამდენიმე არგუმენტი:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
foo $x, @y, %z;
</source>
</div>
 
ქვეპროგრამის პარამეტრების განსაზღვრა საჭირო არ არის. რამდენი არგუმენტიც არ უნდა გადავცეთ ქვეპროგრამის, მათ შეიძლება მივწვდეთ <tt>@_</tt>-ს საშუალებით.
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
<tt>@_</tt> ელემენტებს შეიძლება მივწვდეთ ინდექსის მითითებით შემდეგნაირად:
Line 125 ⟶ 152:
 
</source>
</div>
 
ქვეპროგრამა შესაძლებელია აბრუნებდეს მნიშვნელობასაც:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
return 42, $x, @y, %z;
</source>
</div>
 
=== რეგულარული გამოსახულებები ===
Line 137 ⟶ 167:
რეგულარულ გამოსახულებებს პერლის გარდა იყენებს მრავალი პლატფორმა თუ ენა, დღესდღეობით რეგულარული გამოსახულებები აღიარებული სტანდარტია.
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$x = "abcdefgh";
$x =~ m/abc/
</source>
</div>
 
მოცემული გამოსახულება იქნება true თუ სტრიქონი შეიცავს მითითებული სიმბოლოების წყებას, თუ არადა false.
 
შესაძლებელია მოდიფიკატორების მითითება, მაგალითად:
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$x =~ m/abc/i; # case-insensitive pattern match
$x =~ s/abc/aBc/g; # global search and replace
</source>
</div>
 
ერთი შეხედვით რეგულარული გამოსახულება შეიძლება იყოს ძალიან ჩახლართული და ძნელად გარჩევადი.
 
<div style="border:1px dashed #2fab6f;padding:1em;margin:1em 0;">
<source lang="perl">
$x =~ s/^([0-2]\d:[0-5]\d:[0-5]\d)\s+\[([^\]]+)\]\s+(.*)$/g;
</source>
</div>
 
== რესურსები ინტერნეტში ==
მოძიებულია „https://ka.wikipedia.org/wiki/Perl“-დან