Recent Changes - Search:

edit SideBar


Firefox 2
Get Thunderbird!

ArraysListsHahes

#!/usr/bin/perl
#
# Diziler, listeler ve hash'ler.
#
<:vspace>
use strict;
use warnings;
<:vspace>
my (@d1, @d2, @d3);
my ($x, $y, $z);
<:vspace>
# Dizi olu&#351;turma.
@d1 = ("a", "b");
print "d1: @d1\n";
<:vspace>
# qw
@d2 = qw(c d);
print "d2: @d2\n";
<:vspace>
# range operatörü (..)
@d3 = (1 .. 10);
print "d3: @d3\n";
<:vspace>
# Dizideki toplam eleman say&#305;s&#305;
print "d3 dizisinin eleman sayisi: " . scalar(@d3) . "\n";
<:vspace>
# Dizideki son eleman&#305;n indexi.
print "d3 dizisindeki son elemanin indexi: ". $#d3 . "\n";
<:vspace>
# Diziyi resetlemek için:
@d1 = ();
print "d1 dizisi s&#305;f&#305;rland&#305;: " , "@d1\n";
<:vspace>
# Dizinin elemanlar&#305;na tersten eri&#351;im:
print "d3 dizisinin son eleman&#305;: ", $d3[-1] . "\n"; # Dizideki son eleman.
print "d3 dizisinin sondan 2. eleman&#305;: " , $d3[-2] . "\n"; # Dizideki son eleman.
<:vspace>
# Bir listedeki elemanlar&#305;n de&#287;i&#351;kenlere atanmas&#305;.
($x, $y, $z) = ("x", "y", 3);
print "$x - $y - $z \n";
<:vspace>
# Dizinin belirli indexlerine eleman atama.
@d3[2, 4, 6, 8] = qw(aa bb cc dd);
print "d3 dizisi: @d3\n";
<:vspace>
# Listelerde atama.
($x, @d1, $y) = ( 42 .. 52)# $y'ye de&#287;er atanmaz!!!!
print "x : $x \n";
print "d1 : @d1 \n";
print "y : $y \n";
<:vspace>
# push ile dizinin sonuna eleman ekleme:
push(@d1, "99");
print "d1'e push ile 99 eklendi: @d1 \n";
<:vspace>
# pop ile dizinin sonundan eleman ç&#305;karma.
my $cikarildi = pop(@d1);
print "d1'den pop ile son eleman ç&#305;kar&#305;ld&#305;: @d1 \n";
print "Ç&#305;kar&#305;lan eleman: $cikarildi\n";
<:vspace>
# shift ile 1. eleman&#305;n silinmesi)
my $silindi = shift(@d1);
print "d1 : @d1 \n";
print "d1'in boyutu " . scalar(@d1) . "\n";
print "Silinen eleman: $silindi\n";
<:vspace>
# unshift ile dizinin ba&#351;&#305;na eleman ekleme.
unshift(@d1, "11");
print "d1 : @d1 \n";
<:vspace>
#splice(@dizi, baslangic indisi, uzunluk, eklenecek liste)
my @cikarilanlar = splice(@d1, 3, 2, (999, 999));
print "d1 : @d1 \n";
print "d1'de yerleri de&#287;i&#351;tirilen elemanlar: @cikarilanlar\n";
<:vspace>
# splice ile dizinin belirli indislerinin ç&#305;kar&#305;lmas&#305;.
@cikarilanlar = splice(@d1, 3, 2);
print "d1'den 3. ve 4. indislerin ç&#305;kar&#305;lmas&#305; : @d1 \n";
print "d1'in boyutu: " , (scalar(@d1)) , "\n";
<:vspace>
# splice ile dizideki elemanlar&#305;n bir indisten sonras&#305;n&#305;n ç&#305;kar&#305;lmas&#305;
@cikarilanlar = splice(@d1, 5);
print "d1'den 5. indisten sonras&#305;n&#305;n ç&#305;kar&#305;lmas&#305; (5. indis de ç&#305;kar&#305;l&#305;r): @d1 \n";
print "d1'in boyutu: " , (scalar(@d1)) , "\n";
<:vspace>
# splice ile dizideki tüm elemanlar&#305;n silinmesi:
@cikarilanlar = splice(@d1);
print "d1 dizisindeki elemanlar splice ile ç&#305;kar&#305;ld&#305;: @d1\n";
print "d1'in boyutu: " , (scalar(@d1)) , "\n";
<:vspace>
# reverse ile dizideki elemanlar&#305;n ters çevrilmesi.
my @tersten = reverse(@d3);
print "d3 dizisi: @d3\n";
print "d3 dizisinin reverse ile tersten yaz&#305;lmas&#305;: @tersten\n";
<:vspace>
# sort ile dizinin s&#305;ralanmas&#305;(lexically, ASCII karatke tablosuna göre)
my @sirali = sort(@d3);
print "d3 dizisinin sort ile s&#305;ralanmas&#305;: @sirali\n";
<:vspace>
# sort ve <=> ile numerik s&#305;ralama
my @numerik_sirali = sort { $a <=> $b } @d3;
print "d3 dizisinin sort ile numerik s&#305;ralanmas&#305;: @numerik_sirali\n";
<:vspace>
# cmp ile lexically kar&#351;&#305;la&#351;t&#305;rma.
# ???
<:vspace>
# Dizideki elemanlar&#305;n dongü ile yazd&#305;r&#305;lams&#305;.
print "for ile d3 dizisinin yazd&#305;r&#305;lams&#305;: ";
for ($x = 0; $x < @d3; $x++) { # Burdaki @d3 yerine scalar(@d3) de yaz&#305;labilir.
        print $d3[$x] , "-";
}
print "\n";
<:vspace>
# % ile hash olu&#351;turulmas&#305;.
my %h1 = ( isim => 'Sopar', tur => 'Siyam');
<:vspace>
# keys ile hash'in key'lerinin listelenmesi
print "h1'in keyleri: ";
foreach (keys(%h1)) {
        print $_ , " - ";
}
print "\n";
<:vspace>
# values ile hash'in value'lerinin listelenmesi.
print "h1'in vaule'lar&#305;: ";
foreach (values(%h1)) {
        print $_ . " - ";
}
print "\n";
<:vspace>
# hash'in belli bir key'ine eri&#351;im.
print "tur: ", $h1{'tur'}, "\n";
<:vspace>
# hash'in belli bir key'ine de&#287;er atanmas&#305;:
$h1{'tur'} = "Tekir";
print "tur: " . $h1{'tur'}, "\n";
<:vspace>
# each ile key-value çiftlerine eri&#351;im
print "each ile key-value çiftlerine eri&#351;im \n";
while ( (my $key, my $value) = each(%h1) ) {
        print "$key : $value \n";
}
<:vspace>
# hast'te reverse ile key ve values'lar&#305;n yer de&#287;i&#351;tirlimesi.
print "reverse ile key ve value'lar&#305;n yer de&#287;i&#351;tirmesi\n";
my %reversed = reverse(%h1);
while ( (my $key, my $value) = each(%reversed) ) {
        print "$key : $value \n";
}
<:vspace>
# delete ile hash'ten eleman ç&#305;kar&#305;lmas&#305;.
delete($h1{'tur'});
<:vspace>
# exist ile bir key'in hash'te olup olmad&#305;&#287;&#305;n&#305;n kontrol edilmesi.
if (exists($h1{'isim'}) ){
        print "isim key'i h1'de var. \n";
}
<:vspace>
# undef ile belli bir key'e de&#287;er atan&#305;m atanmad&#305;&#287;&#305;n&#305; bulunmas&#305;.
undef($h1{'isim'});
if (defined($h1{'isim'}) ) {
        print "isim key'ine de&#287;er atanm&#305;&#351;. \n";
} else {
        print "isim key'inin degeri yok.\n";
}
<:vspace>
# Bir dizideki elemanlar&#305;n hash'e key olarak atkar&#305;lmas&#305;.
my @opinions = qw(my opinion);
my %h2;
foreach (@opinions) {
        $h2{$_} = "";
}
print "h2 keys: ", keys(%h2) , "\n";
print "h2 values : ", values(%h2) , "\n";
<:vspace>
# hash'in value'lar&#305;na göre numerik s&#305;ralanmas&#305;(büyükten küçü&#287;e)
print "h2'nin büyükten küçü&#287;e s&#305;ralanmas&#305;: ";
$h2{'my'} = 99;
$h2{'opinion'} = 44;
foreach ( sort{ $h2{$b} <=> $h2{$a} } keys(%h2) ) {
        print $_ , ":", $h2{$_} ," ";
}
print "\n";
<:vspace>
# hash'in value'lar&#305;na göre numerik s&#305;ralanmas&#305;(küçükten büyü&#287;e)
print "h2'nin küçükten büyü&#287;e s&#305;ralanmas&#305;: ";
$h2{'my'} = 99;
$h2{'opinion'} = 44;
foreach ( sort{ $h2{$a} <=> $h2{$b} } keys(%h2) ) {
        print $_ , ":", $h2{$_} ," ";
}
print "\n";
<:vspace>
# hash referans&#305;n&#305;n scalar de&#287;i&#351;kene atanmas&#305;
my $ref = {bir=>"1", iki=>"iki", 'uc'=>"3", 'a b'=>'cd'};
print "bir: ", $ref->{'bir'} , "\n";
print "uc: ", $ref->{'uc'} , "\n";
print "a b: ", $ref->{'a b'} , "\n";

Edit - History - Print - Recent Changes - Search
Page last modified on July 13, 2005, at 11:12 PM