Fungsi Perl Bless

Fungsi Perl Bless



Sintaks pengaturcaraan berorientasikan objek dalam Perl adalah sedikit berbeza daripada bahasa pengaturcaraan berorientasikan objek standard seperti Java, C++, Python, dll. Kata kunci pakej digunakan dalam Perl untuk mentakrifkan kelas dalam Perl. Pengisytiharan objek dan kaedah dalam Perl adalah serupa dengan pengisytiharan pembolehubah dan subrutin tetapi kaedah pengisytiharan objek dalam Perl untuk mengaitkan rujukan dan rujukan adalah berbeza daripada bahasa pengaturcaraan lain. Fungsi bless() digunakan untuk melakukan tugas ini. Penggunaan fungsi bless untuk melakukan pengaturcaraan berorientasikan objek dalam Perl ditunjukkan dalam tutorial ini.

Sintaks:

Sintaks fungsi 'berkati' diberikan dalam perkara berikut. Fungsi ini boleh digunakan dengan satu hujah atau dua hujah. Biasanya, fungsi ini digunakan dengan dua argumen di mana argumen pertama ialah pembolehubah rujukan dan argumen kedua ialah nama kelas yang dirujuk oleh argumen pertama. Apabila ia digunakan dengan satu nilai argumen, pembolehubah rujukan merujuk kepada pakej semasa.







memberkati ref

atau



memberkati ref , nama kelas

Contoh Berbeza Fungsi Bless().

Penggunaan fungsi bless() dalam pelbagai cara ditunjukkan dalam bahagian tutorial ini.



Contoh 1: Menggunakan Kelas dan Objek Mudah

Dalam contoh ini, pakej bernama 'Buku' mengandungi subrutin yang berfungsi seperti kaedah pembina kelas. Di sini, fungsi 'berkati' digunakan untuk mengaitkan pembolehubah dengan nama kelas yang disediakan pada masa memanggil kaedah Init().





#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;

#Tentukan pakej
Buku pakej ;
#Tentukan pembina
di bawah Init
{
#Memulakan nama kelas
$className saya = syif ;
#Memulakan pembolehubah
$pembolehubah saya = {
'Nama Buku' => syif ,
'Nama Pengarang' => syif ,
'Tahun Terbitan' => syif ,
'Harga' => syif
} ;

#Tetapkan rujukan dengan rujukan
memberkati $variables , $className ;
#Kembalikan pembolehubah rujukan
kembali $pembolehubah ;
}

#Buat objek kelas
$bookObj saya = Buku Init ( 'Pembelajaran Perl' , 'Randal L. Schwartz' , 1993 , Empat lima ) ;

#Cetak nilai pembolehubah kelas
katakan 'Butiran buku:' ;
katakan ' \n Nama Buku: $bookObj->{'Nama Buku'}' ;
katakan 'Nama Pengarang: $bookObj->{'AuthorName'}' ;
katakan 'Tahun Terbitan: $bookObj->{'PublishedYear'}' ;
katakan 'Harga: \$ $bookObj->{'Harga'}' ;

Pengeluaran:

Output berikut muncul selepas melaksanakan skrip:



  p1

Contoh 2: Menggunakan Kelas dan Objek dengan Pelbagai Kaedah

Dalam contoh ini, pakej bernama 'Produk' mengandungi dua kaedah. Satu kaedah ialah Init() yang digunakan untuk memulakan pembolehubah yang diperlukan dan merujuk kepada pembolehubah dengan nama kelas menggunakan fungsi 'bless'. Kaedah lain iaitu calculate_price() digunakan untuk mengira harga diskaun produk.

#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;

#Tentukan pakej
pakej Produk ;
$pembolehubah saya = { } ;

#Tentukan pembina
di bawah Init
{
#Memulakan nama kelas
$className saya = syif ;
#Memulakan pembolehubah
$pembolehubah = {

'ID' => syif ,
'Nama' => syif ,
'Harga' => syif

} ;

#Tetapkan rujukan dengan rujukan
memberkati $variables , $className ;
#Kembalikan pembolehubah rujukan
kembali $pembolehubah ;
}

#Istiharkan kaedah untuk mengira harga diskaun
sub hitung_harga
{

harga $diskaun saya = $pembolehubah- > { 'Harga' } - $pembolehubah- > { 'Harga' } * 0.1 ;
katakan 'Harga diskaun: \$ $discount_price' ;

}

#Buat objek kelas
$proObj saya = Produk Init ( '6745' , 'Pemantau Dell' , lima puluh ) ;

#Cetak nilai pembolehubah kelas
katakan 'Maklumat produk selepas 10 \% diskaun: ' ;
katakan ' \n Id: $proObj->{'Id'}' ;
katakan 'Nama: $proObj->{'Nama'}' ;
katakan 'Harga asal: \$ $proObj->{'Harga'}' ;

#Panggil kaedah objek
$proObj- > hitung_harga ( ) ;

Pengeluaran:

Output berikut muncul selepas melaksanakan skrip:

  p2

Contoh 3: Menggunakan Kelas dengan Mencipta Modul

Dalam contoh ini, modul Perl yang ditentukan pengguna dicipta dalam fail berasingan bernama 'CalPower.pm' di mana fungsi 'bless' digunakan. Cipta fail ini dengan skrip Perl berikut. Modul ini mengira “x n ' di mana nilai 'x' dan 'n' disediakan daripada skrip Perl di mana modul ini diimport.

#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;

#Tentukan nama pakej
pakej CalPower ;

#Tentukan pembina
di bawah Init
{
$className saya = syif ;
$var saya =
{
nombor => syif ,
kuasa => syif
} ;

memberkati $var , $className ;
kembali $var ;

}

#Tentukan kaedah untuk mengira nilai kuasa
sub Kira
{
$var saya = syif ;
$hasil saya = $var- > { 'nombor' } ;
untuk ( $i saya = 1 ; $i < $var- > { 'kuasa' } ; $i++ )
{
$hasil = $var- > { 'nombor' } * $hasil ;
}
kembali $hasil ;

}

Cipta fail Perl dengan skrip berikut di mana modul 'CalPower' diimport untuk mengira kuasa berdasarkan nilai input yang diambil daripada pengguna.

#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;
gunakan CalPower ;

#Ambil nilai asas
cetak 'Masukkan nilai x:' ;
chomp ( $x saya = <> ) ;
#Ambil lembah kuasa
cetak 'Masukkan nilai n:' ;
chomp ( $n saya = <> ) ;

#Buat objek kelas
$Obj saya = Init CalPower ( $x , $n ) ;

#Cetak nilai kuasa yang dikira
cetak '$x kepada kuasa $n ialah ' ;
katakan $Obj- > Kira ( ) ;

Pengeluaran:

Output berikut muncul selepas melaksanakan skrip:

  p3

Kesimpulan

Penggunaan fungsi 'berkati' dalam Perl ditunjukkan dalam tutorial ini dengan mencipta pakej dalam fail Perl yang sama dan mencipta modul dalam fail lain.