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:
Ö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/perlkatı 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:
Ö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/Perlkatı 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/perlkatı 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:
Çö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.