ฟังก์ชั่น Perl Bless

Fang Kchan Perl Bless



ไวยากรณ์การเขียนโปรแกรมเชิงวัตถุใน Perl แตกต่างเล็กน้อยจากภาษาการเขียนโปรแกรมเชิงวัตถุมาตรฐาน เช่น Java, C++, Python ฯลฯ คำสำคัญแพ็คเกจใช้ใน Perl เพื่อกำหนดคลาสใน Perl การประกาศวัตถุและวิธีการใน Perl นั้นคล้ายคลึงกับการประกาศตัวแปรและรูทีนย่อย แต่วิธีการประกาศวัตถุใน Perl เพื่อเชื่อมโยงการอ้างอิงและการอ้างอิงนั้นแตกต่างจากภาษาการเขียนโปรแกรมอื่น ฟังก์ชัน bless() ใช้สำหรับงานนี้ การใช้ฟังก์ชัน bless เพื่อทำการเขียนโปรแกรมเชิงวัตถุใน Perl จะแสดงอยู่ในบทช่วยสอนนี้

ไวยากรณ์:

ไวยากรณ์ของฟังก์ชัน 'อวยพร' มีดังต่อไปนี้ ฟังก์ชันนี้สามารถใช้ได้กับหนึ่งอาร์กิวเมนต์หรือสองอาร์กิวเมนต์ โดยปกติแล้ว ฟังก์ชันนี้จะใช้กับสองอาร์กิวเมนต์ โดยอาร์กิวเมนต์แรกเป็นตัวแปรอ้างอิง และอาร์กิวเมนต์ที่สองคือชื่อคลาสที่ถูกอ้างอิงโดยอาร์กิวเมนต์แรก เมื่อใช้กับค่าอาร์กิวเมนต์เดียว ตัวแปรอ้างอิงจะอ้างอิงถึงแพ็คเกจปัจจุบัน







อวยพรผู้อ้างอิง

หรือ



อวยพรผู้อ้างอิง , ชื่อคลาส

ตัวอย่างฟังก์ชัน Bless() แบบต่างๆ

การใช้ฟังก์ชัน bless() ในหลายๆ วิธีจะแสดงไว้ในส่วนนี้ของบทช่วยสอน



ตัวอย่างที่ 1: การใช้คลาสธรรมดาและวัตถุ

ในตัวอย่างนี้ แพ็คเกจชื่อ 'Book' มีรูทีนย่อยที่ทำงานเหมือนกับเมธอด Constructor ของคลาส ในที่นี้ ฟังก์ชัน 'bless' ใช้เพื่อเชื่อมโยงตัวแปรกับชื่อคลาสที่ให้ไว้ในขณะที่เรียกใช้เมธอด Init()





#!/usr/bin/perl

ใช้อย่างเข้มงวด ;
ใช้ คำเตือน ;
ใช้ 5.34.0 ;

#กำหนดแพ็คเกจ
หนังสือแพ็คเกจ ;
#กำหนดคอนสตรัคเตอร์
ภายใต้การเริ่มต้น
{
#เริ่มต้นชื่อคลาส
$className ของฉัน = กะ ;
#เริ่มต้นตัวแปร
ตัวแปร $ ของฉัน = {
'ชื่อหนังสือ' => กะ ,
'ชื่อผู้แต่ง' => กะ ,
'ปีที่เผยแพร่' => กะ ,
'ราคา' => กะ
} ;

#ตั้งค่าการอ้างอิงด้วยการอ้างอิง
อวยพรตัวแปร $ , $คลาสชื่อ ;
#ส่งคืนตัวแปรอ้างอิง
กลับ $ตัวแปร ;
}

#สร้างวัตถุมงคล
$bookObj.ของฉัน = หนังสือเริ่มต้น ( “เรียนภาษาเพิร์ล” , 'แรนดัล แอล. ชวาตซ์' , 1993 , สี่ห้า ) ;

#พิมพ์ค่าของตัวแปรคลาส
พูด 'รายละเอียดหนังสือ:' ;
พูด ' \n ชื่อหนังสือ: $bookObj->{'BookName'}' ;
พูด 'ชื่อผู้แต่ง: $bookObj->{'AuthorName'}' ;
พูด 'ปีที่พิมพ์: $bookObj->{'PublishedYear'}' ;
พูด 'ราคา: \$ $bookObj->{'ราคา'}' ;

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์:



  หน้า 1

ตัวอย่างที่ 2: การใช้คลาสและวัตถุที่มีหลายวิธี

ในตัวอย่างนี้ แพ็คเกจชื่อ 'ผลิตภัณฑ์' มีสองวิธี วิธีหนึ่งคือ Init() ซึ่งใช้ในการเริ่มต้นตัวแปรที่จำเป็นและอ้างอิงถึงตัวแปรด้วยชื่อคลาสโดยใช้ฟังก์ชัน 'bless' อีกวิธีหนึ่งคือการคำนวณราคา () ใช้ในการคำนวณราคาส่วนลดของผลิตภัณฑ์

#!/usr/bin/perl

ใช้อย่างเข้มงวด ;
ใช้ คำเตือน ;
ใช้ 5.34.0 ;

#กำหนดแพ็คเกจ
สินค้าแพ็คเก็จ ;
ตัวแปร $ ของฉัน = { } ;

#กำหนดคอนสตรัคเตอร์
ภายใต้การเริ่มต้น
{
#เริ่มต้นชื่อคลาส
$className ของฉัน = กะ ;
#เริ่มต้นตัวแปร
$ตัวแปร = {

'รหัส' => กะ ,
'ชื่อ' => กะ ,
'ราคา' => กะ

} ;

#ตั้งค่าการอ้างอิงด้วยการอ้างอิง
อวยพรตัวแปร $ , $คลาสชื่อ ;
#ส่งคืนตัวแปรอ้างอิง
กลับ $ตัวแปร ;
}

#ประกาศวิธีการคำนวณราคาส่วนลด
ย่อยการคำนวณ_ราคา
{

$discount_price ของฉัน = $ตัวแปร- > { 'ราคา' } - $ตัวแปร- > { 'ราคา' } * 0.1 ;
พูด 'ลดราคา: \$ $ส่วนลด_ราคา' ;

}

#สร้างวัตถุมงคล
$proObj. ของฉัน = เริ่มต้นผลิตภัณฑ์ ( '6745' , 'มอนิเตอร์เดลล์' , ห้าสิบ ) ;

#พิมพ์ค่าของตัวแปรคลาส
พูด “ข้อมูลสินค้าหลัง 10.00 น \% การลดราคา: ' ;
พูด ' \n รหัส: $proObj->{'Id'}' ;
พูด 'ชื่อ: $proObj->{'ชื่อ'}' ;
พูด 'ราคาเดิม: \$ $proObj->{'ราคา'}' ;

#เรียกเมธอดอ็อบเจ็กต์
$โปรObj- > คำนวณ_ราคา ( ) ;

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์:

  หน้า 2

ตัวอย่างที่ 3: การใช้คลาสโดยการสร้างโมดูล

ในตัวอย่างนี้ โมดูล Perl ที่ผู้ใช้กำหนดจะถูกสร้างขึ้นในไฟล์แยกต่างหากชื่อ 'CalPower.pm' โดยที่ฟังก์ชัน 'bless' ถูกใช้ สร้างไฟล์นี้ด้วยสคริปต์ Perl ต่อไปนี้ โมดูลนี้จะคำนวณค่า “x” n “ โดยที่ค่าของ “x” และ “n” มาจากสคริปต์ Perl ที่นำเข้าโมดูลนี้

#!/usr/bin/perl

ใช้อย่างเข้มงวด ;
ใช้ คำเตือน ;
ใช้ 5.34.0 ;

#กำหนดชื่อแพ็คเกจ
แพ็คเกจ CalPower ;

#กำหนดคอนสตรัคเตอร์
ภายใต้การเริ่มต้น
{
$className ของฉัน = กะ ;
$var ของฉัน =
{
ตัวเลข => กะ ,
พลัง => กะ
} ;

อวยพร $var , $คลาสชื่อ ;
กลับ $var ;

}

#กำหนดวิธีการคำนวณค่ากำลัง
คำนวณย่อย
{
$var ของฉัน = กะ ;
ผลลัพธ์ $ ของฉัน = $var- > { 'ตัวเลข' } ;
สำหรับ ( $i ของฉัน = 1 ; $ฉัน < $var- > { 'พลัง' } ; $i++ )
{
$ผลลัพธ์ = $var- > { 'ตัวเลข' } * $ผลลัพธ์ ;
}
กลับ $ผลลัพธ์ ;

}

สร้างไฟล์ Perl ด้วยสคริปต์ต่อไปนี้ซึ่งนำเข้าโมดูล 'CalPower' เพื่อคำนวณพลังงานตามค่าอินพุตที่นำมาจากผู้ใช้

#!/usr/bin/perl

ใช้อย่างเข้มงวด ;
ใช้ คำเตือน ;
ใช้ 5.34.0 ;
ใช้แคลพาวเวอร์ ;

#เอาค่าฐานมา
พิมพ์ 'ป้อนค่าของ x:' ;
กัด ( $x ของฉัน = <> ) ;
#เอาหุบเขาพลัง
พิมพ์ 'ป้อนค่าของ n:' ;
กัด ( $n ของฉัน = <> ) ;

#สร้างวัตถุมงคล
$Obj.ของฉัน = เริ่มต้น CalPower ( $x , $n ) ;

#พิมพ์ค่ากำลังที่คำนวณได้
พิมพ์ '$x ยกกำลัง $n คือ' ;
พูด $Obj- > คำนวณ ( ) ;

เอาท์พุท:

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้นหลังจากรันสคริปต์:

  หน้า 3

บทสรุป

การใช้ฟังก์ชัน “bless” ใน Perl จะแสดงอยู่ในบทช่วยสอนนี้โดยการสร้างแพ็คเกจในไฟล์ Perl เดียวกันและสร้างโมดูลในไฟล์อื่น