Perl Korusun İşlevi

Perl Korusun Islevi



Perl'deki nesne yönelimli programlama sözdizimi, Java, C++, Python, vb. gibi standart nesne yönelimli programlama dillerinden biraz farklıdır. Perl'de paket anahtar sözcüğü, Perl'de bir sınıfı tanımlamak için kullanılır. Perl'deki nesne ve yöntem bildirimi, değişken ve alt program bildirimine benzer, ancak Perl'de referans ve referansı ilişkilendirmek için bir nesneyi bildirme yöntemi diğer programlama dillerinden farklıdır. Bu görevi gerçekleştirmek için korusun() işlevi kullanılır. Perl'de nesne yönelimli programlama yapmak için korusun işlevinin kullanımı bu eğitimde gösterilmektedir.

Sözdizimi:

“Korusun” fonksiyonunun sözdizimi aşağıda verilmiştir. Bu fonksiyon bir veya iki argümanla kullanılabilir. Normalde bu işlev, ilk argümanın referans değişkeni ve ikinci argümanın, ilk argümanın referans verdiği sınıf adı olduğu iki argümanla kullanılır. Tek bir argüman değeriyle kullanıldığında referans değişkeni geçerli pakete atıfta bulunur.







ref korusun

veya



ref korusun , sınıf adı

Bless() Fonksiyonunun Farklı Örnekleri

Bless() fonksiyonunun çeşitli şekillerde kullanımı eğitimin bu bölümünde gösterilmektedir.



Örnek 1: Basit Sınıfı ve Nesneyi Kullanmak

Bu örnekte “Book” isimli paket, sınıfın yapıcı metodu gibi çalışan bir altprogram içermektedir. Burada “bless” fonksiyonu, değişkenleri Init() yöntemi çağrılırken sağlanan sınıf adıyla ilişkilendirmek için kullanılır.





#!/usr/bin/Perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;

#Paketi tanımla
paket Kitap ;
#Yapıcıyı tanımlayın
Başlat altında
{
#Sınıf adını ilklendir
benim $className = vardiya ;
#Değişkenleri başlat
$değişkenlerim = {
'KitapAdı' => vardiya ,
'YazarAdı' => vardiya ,
'Yayınlandığı Yıl' => vardiya ,
'Fiyat' => vardiya
} ;

#Referansı referansla ayarlayın
$değişkenleri korusun , $className ;
#Referans değişkenini döndür
geri dönmek $değişkenler ;
}

#Sınıftan bir nesne yarat
benim $bookObj = Kitabı Başlat ( 'Perl'i Öğrenmek' , 'Randal L. Schwartz' , 1993 , Dört beş ) ;

#Sınıf değişkenlerinin değerlerini yazdır
söylemek 'Kitap ayrıntıları:' ;
söylemek ' \N Kitap Adı: $bookObj->{'BookName'}' ;
söylemek 'Yazar Adı: $bookObj->{'AuthorName'}' ;
söylemek 'Yayınlanma Yılı: $bookObj->{'PublishedYear'}' ;
söylemek 'Fiyat: \$ $bookObj->{'Fiyat'}' ;

Çıktı:

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



  p1

Örnek 2: Sınıfı ve Nesneyi Birden Çok Yöntemle Kullanmak

Bu örnekte “Ürünler” adlı pakette iki yöntem bulunmaktadır. Yöntemlerden biri, gerekli değişkenleri başlatmak ve 'bless' işlevini kullanarak değişkenlere sınıf adıyla atıfta bulunmak için kullanılan Init() yöntemidir. Ürünün indirimli fiyatını hesaplamak için diğer bir yöntem olan account_price() yöntemi kullanılır.

#!/usr/bin/perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;

#Paketi tanımla
paket Ürün ;
$değişkenlerim = { } ;

#Yapıcıyı tanımlayın
Başlat altında
{
#Sınıf adını ilklendir
benim $className = vardiya ;
#Değişkenleri başlat
$değişkenler = {

'İD' => vardiya ,
'İsim' => vardiya ,
'Fiyat' => vardiya

} ;

#Referansı referansla ayarlayın
$değişkenleri korusun , $className ;
#Referans değişkenini döndür
geri dönmek $değişkenler ;
}

İndirimli fiyatı hesaplamak için #Declare yöntemi
alt hesaplama_fiyat
{

benim $discount_price'ım = $değişkenler- > { 'Fiyat' } - $değişkenler- > { 'Fiyat' } * 0,1 ;
söylemek 'İndirimli fiyat: \$ $indirim_fiyatı' ;

}

#Sınıftan bir nesne yarat
benim $proObj'um = Ürünü Başlat ( '6745' , 'Dell monitör' , elli ) ;

#Sınıf değişkenlerinin değerlerini yazdır
söylemek '10'dan sonra ürün bilgisi \% indirim: ' ;
söylemek ' \N Kimlik: $proObj->{'Id'}' ;
söylemek 'Ad: $proObj->{'Name'}' ;
söylemek 'Orijinal fiyat: \$ $proObj->{'Fiyat'}' ;

#Nesne yöntemini çağır
$proObj- > hesapla_fiyat ( ) ;

Çıktı:

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

  p2

Örnek 3: Modül Oluşturarak Sınıfı Kullanmak

Bu örnekte kullanıcı tanımlı Perl modülü, “bless” fonksiyonunun kullanıldığı “CalPower.pm” isimli ayrı bir dosyada oluşturulmuştur. Bu dosyayı aşağıdaki Perl betiğiyle oluşturun. Bu modül “x”i hesaplar N “burada “x” ve “n” değerleri bu modülün içe aktarıldığı Perl betiğinden sağlanır.

#!/usr/bin/Perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;

#Paket adını tanımlayın
CalPower paketi ;

#Yapıcıyı tanımlayın
Başlat altında
{
benim $className = vardiya ;
benim $var =
{
sayı => vardiya ,
güç => vardiya
} ;

$var'ı korusun , $className ;
geri dönmek $var ;

}

#Güç değerini hesaplama yöntemini tanımlayın
alt Hesapla
{
benim $var = vardiya ;
$sonucum = $var- > { 'sayı' } ;
için ( benim $i'm = 1 ; $i < $var- > { 'güç' } ; $i++ )
{
$sonuç = $var- > { 'sayı' } * $sonuç ;
}
geri dönmek $sonuç ;

}

Kullanıcıdan alınan giriş değerine göre gücü hesaplamak için “CalPower” modülünün içe aktarıldığı aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun.

#!/usr/bin/perl

katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
CalPower'ı kullan ;

#Temel değeri al
Yazdır 'X'in değerini girin:' ;
parçalamak ( benim x dolarım = <> ) ;
#Güç vadisini al
Yazdır 'n'nin değerini girin:' ;
parçalamak ( benim $n'ım = <> ) ;

#Sınıftan bir nesne yarat
benim $Obj'um = CalPower'ı Başlat ( $x , $n ) ;

#Hesaplanan güç değerini yazdır
Yazdır '$x üssü $n ' ;
$Obj deyin- > Hesaplamak ( ) ;

Çıktı:

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

  p3

Çözüm

Perl'deki “kutsa” fonksiyonunun kullanımları bu eğitimde aynı Perl dosyasında bir paket ve farklı bir dosyada bir modül oluşturularak gösterilmektedir.