Perl /
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ş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ısı print "d3 dizisinin eleman sayisi: " . scalar(@d3) . "\n"; <:vspace> # Dizideki son elemanın indexi. print "d3 dizisindeki son elemanin indexi: ". $#d3 . "\n"; <:vspace> # Diziyi resetlemek i�in: @d1 = (); print "d1 dizisi sıfırlandı: " , "@d1\n"; <:vspace> # Dizinin elemanlarına tersten erişim: print "d3 dizisinin son elemanı: ", $d3[-1] . "\n"; # Dizideki son eleman. print "d3 dizisinin sondan 2. elemanı: " , $d3[-2] . "\n"; # Dizideki son eleman. <:vspace> # Bir listedeki elemanların değişkenlere atanması. ($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ğ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 �ıkarma. my $cikarildi = pop(@d1); print "d1'den pop ile son eleman �ıkarıldı: @d1 \n"; print "�ıkarılan eleman: $cikarildi\n"; <:vspace> # shift ile 1. elemanı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şı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ğiştirilen elemanlar: @cikarilanlar\n"; <:vspace> # splice ile dizinin belirli indislerinin �ıkarılması. @cikarilanlar = splice(@d1, 3, 2); print "d1'den 3. ve 4. indislerin �ıkarılması : @d1 \n"; print "d1'in boyutu: " , (scalar(@d1)) , "\n"; <:vspace> # splice ile dizideki elemanların bir indisten sonrasının �ıkarılması @cikarilanlar = splice(@d1, 5); print "d1'den 5. indisten sonrasının �ıkarılması (5. indis de �ıkarılır): @d1 \n"; print "d1'in boyutu: " , (scalar(@d1)) , "\n"; <:vspace> # splice ile dizideki t�m elemanların silinmesi: @cikarilanlar = splice(@d1); print "d1 dizisindeki elemanlar splice ile �ıkarıldı: @d1\n"; print "d1'in boyutu: " , (scalar(@d1)) , "\n"; <:vspace> # reverse ile dizideki elemanların ters �evrilmesi. my @tersten = reverse(@d3); print "d3 dizisi: @d3\n"; print "d3 dizisinin reverse ile tersten yazılması: @tersten\n"; <:vspace> # sort ile dizinin sıralanması(lexically, ASCII karatke tablosuna g�re) my @sirali = sort(@d3); print "d3 dizisinin sort ile sıralanması: @sirali\n"; <:vspace> # sort ve <=> ile numerik sıralama my @numerik_sirali = sort { $a <=> $b } @d3; print "d3 dizisinin sort ile numerik sıralanması: @numerik_sirali\n"; <:vspace> # cmp ile lexically karşılaştırma. # ??? <:vspace> # Dizideki elemanların dong� ile yazdırılamsı. print "for ile d3 dizisinin yazdırılamsı: "; for ($x = 0; $x < @d3; $x++) { # Burdaki @d3 yerine scalar(@d3) de yazılabilir. print $d3[$x] , "-"; } print "\n"; <:vspace> # % ile hash oluşturulması. 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ı: "; foreach (values(%h1)) { print $_ . " - "; } print "\n"; <:vspace> # hash'in belli bir key'ine erişim. print "tur: ", $h1{'tur'}, "\n"; <:vspace> # hash'in belli bir key'ine değer atanması: $h1{'tur'} = "Tekir"; print "tur: " . $h1{'tur'}, "\n"; <:vspace> # each ile key-value �iftlerine erişim print "each ile key-value �iftlerine erişim \n"; while ( (my $key, my $value) = each(%h1) ) { print "$key : $value \n"; } <:vspace> # hast'te reverse ile key ve values'ların yer değiştirlimesi. print "reverse ile key ve value'ların yer değiştirmesi\n"; my %reversed = reverse(%h1); while ( (my $key, my $value) = each(%reversed) ) { print "$key : $value \n"; } <:vspace> # delete ile hash'ten eleman �ıkarılması. delete($h1{'tur'}); <:vspace> # exist ile bir key'in hash'te olup olmadığının kontrol edilmesi. if (exists($h1{'isim'}) ){ print "isim key'i h1'de var. \n"; } <:vspace> # undef ile belli bir key'e değer atanım atanmadığını bulunması. undef($h1{'isim'}); if (defined($h1{'isim'}) ) { print "isim key'ine değer atanmış. \n"; } else { print "isim key'inin degeri yok.\n"; } <:vspace> # Bir dizideki elemanların hash'e key olarak atkarılması. 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ına g�re numerik sıralanması(b�y�kten k���ğe) print "h2'nin b�y�kten k���ğe sıralanması: "; $h2{'my'} = 99; $h2{'opinion'} = 44; foreach ( sort{ $h2{$b} <=> $h2{$a} } keys(%h2) ) { print $_ , ":", $h2{$_} ," "; } print "\n"; <:vspace> # hash'in value'larına g�re numerik sıralanması(k���kten b�y�ğe) print "h2'nin k���kten b�y�ğe sıralanması: "; $h2{'my'} = 99; $h2{'opinion'} = 44; foreach ( sort{ $h2{$a} <=> $h2{$b} } keys(%h2) ) { print $_ , ":", $h2{$_} ," "; } print "\n"; <:vspace> # hash referansının scalar değişkene atanması 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"; |