Perl Dizi Referansı

Perl Dizi Referansi



Herhangi bir değişken için referans değişken oluşturulduğunda ve ana değişkenin değeri değiştirilirse, aynı zamanda referans değişkenin değeri de değiştirilir. Çünkü hem “ana” değişken hem de “referans” değişken bellekte aynı konumu paylaşmaktadır. Hem skaler değişkenin hem de vektör değişkeninin referans değişkeni Perl'de tanımlanabilir. Dizi Perl'deki bir tür vektör değişkenidir. Perl dizisinin referans değişkenini oluşturma ve kullanma yöntemleri bu eğitimde gösterilmektedir.

Dizi Referansının Farklı Kullanımları

Dizi referans değişkenlerinin farklı amaçlarla kullanımları aşağıda gösterilmektedir:

Dizi değişkeni Dizi referans değişkeni Amaç
@sıralamak @{ $ref_array } Tüm dizi değerlerine başvurmak için kullanılır.
skaler @dizi skaler @ref_array Toplam dizi sayısını saymak için kullanılır.
$#dizi $#ref_array En büyük indeksi tanımlamak için kullanılır.
$dizi[dizin] $tef_array->[dizin] Dizinin belirli bir elemanını belirtmek için kullanılır.

Perl Dizisi Referanslarının Kullanımı

Eğitimin bu bölümünde Perl dizisi referans değişkenlerinin farklı kullanımları gösterilmektedir.







Örnek 1: Dizi Referansı Oluşturma

Dört dize değerinden oluşan bir diziyi ve bu dizinin referans değişkenini bildiren aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun. Referans değişkeni ana dizinin hafıza konumunu saklar ve her iki değişken de aynı konumu paylaşır. Referans değişkeninin ve ana dizinin içeriği daha sonra yazdırılır.



#!/usr/bin/perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
Veri::Damper'i kullan ;

#Bir dizi dizisi bildirin
Benim @ başıboş = ( 'Perl' , 'Java' , 'Bah' , 'Python' ) ;

#Dizi değişkeninin referansını oluştur
benim $ref_array'im = \ @ başıboş ;

söylemek 'Dizi referansının içeriği $ref_array' ;

söylemek 'Dumber değişkenini kullanan dizi değerleri: ' ;
#Referans değişkenini Damper değişkeniyle yazdır
Yazdır Damperli kamyon $ref_array ;

Çıktı:



Betiği çalıştırırken aşağıdaki çıktı görünür:





  p1

Örnek 2: Referansı Oluşturduktan Sonra Diziyi Güncelleyin

Ana dizinin herhangi bir öğesi değiştirilirse, referans dizi değişkeninin karşılık gelen değerinin de aynı anda değiştiğini gösteren aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun. Dizinin herhangi bir değeri güncellenmeden önce ana dizinin tüm değerleri yazdırılır ve referans dizisinin tüm değerleri, “dump” değişkeni kullanılarak ikinci öğe güncellendikten sonra yazdırılır.



#!/usr/bin/perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
Veri::Damper'i kullan ;

#Bir dizi dizisi bildirin
Benim @ başıboş = ( 'Perl' , 'Java' , 'Bah' , 'Python' ) ;

söylemek 'Ana dizi değerleri şunlardır: ' ;
#Referans değişkenini Damper değişkeniyle yazdır
Yazdır Damper \ @ başıboş ;

#Dizi değişkeninin referansını oluştur
benim $ref_array'im = \ @ başıboş ;

#Dizinin 2. elemanını güncelle
$strarr [ 1 ] = 'C++' ;

söylemek 'Referans Dizisi değerleri (ana diziyi güncelledikten sonra): ' ;
#Referans değişkenini Damper değişkeniyle yazdır
Yazdır Damperli kamyon $ref_array ;

Çıktı:

Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Çıktıya göre ana dizinin ikinci elemanı “C++” değeri ile güncellendiğinden referans dizisindeki ikinci eleman “C++” olarak değiştirilmiştir:

  p2

Örnek 3: Dizi Referansını bir Alt Programa Aktarın

Dizinin referans değişkeninin altyordamın argümanı olarak gönderildiği aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun. Dizinin üçüncü indeksinin değeri, altprogram içindeki referans değişkeni kullanılarak güncellenir. Ana dizinin değerleri, “dump” değişkeni kullanılarak referans değişkeninin üçüncü indeksinin güncellenmesinden önce ve sonra yazdırılır.

#!/usr/bin/perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
Veri::Damper'i kullan ;

#Sayılardan oluşan bir dizi bildirin
Benim @ sayılar = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

söylemek 'Güncellemeden önceki ana dizinin değerleri:' ;
Yazdır Damper \ @ sayılar ;

#Diziyi referans olarak alt programa ilet
okuma_dizisi ( \ @ sayılar ) ;
Dizi değerini değiştirmek için #Declare alt yordamı
alt okuma_dizisi
{
#Dizi referans değişkenini tanımlayın
benim $arr_ref'im = $_ [ 0 ] ;
#Dizinin üçüncü elemanını güncelle
$arr_ref- > [ 2 ] = 99 ;
}
söylemek 'Güncelleme sonrasında ana dizinin değerleri:' ;
Yazdır Damper \ @ sayılar ;

Çıktı:

Betiği çalıştırdıktan sonra aşağıdaki çıktı görünür. Dizinin üçüncü elemanı 90'dı ve bu değer dizinin referans değişkeni kullanılarak 99 olarak değiştirildi. Orijinal dizinin üçüncü elemanı da 99 ile güncellenir çünkü her iki değişken de aynı konumu paylaşır:

  p3

Çözüm

Dizinin referans değişkenini oluşturarak dizi değerlerine erişme veya bunları güncelleme yöntemleri bu eğitimde gösterilmektedir. Perl kullanıcıları bu eğitimi okuduktan sonra Perl dizisinin referans değişkenlerini kullanma konusunda net bir konsepte sahip olacaklar.