Функция Perl Bless

Funkcia Perl Bless



Синтаксис объектно-ориентированного программирования в Perl немного отличается от синтаксиса стандартных объектно-ориентированных языков программирования, таких как Java, C++, Python и т. д. Ключевое слово package используется в Perl для определения класса в Perl. Объявление объекта и метода в Perl похоже на объявление переменной и подпрограммы, но метод объявления объекта в Perl для связи ссылки и референта отличается от других языков программирования. Для выполнения этой задачи используется функция bless(). В этом руководстве показано использование функции bless для объектно-ориентированного программирования на Perl.

Синтаксис:

Синтаксис функции «bless» приведен ниже. Эту функцию можно использовать с одним или двумя аргументами. Обычно эта функция используется с двумя аргументами, где первый аргумент — это ссылочная переменная, а второй аргумент — это имя класса, на который ссылается первый аргумент. Когда она используется с одним значением аргумента, ссылочная переменная относится к текущему пакету.







благослови рефери

или



благослови рефери , имя класса

Различные примеры функции Bless()

В этой части руководства показано использование функции bless() различными способами.



Пример 1. Использование простого класса и объекта

В этом примере пакет с именем «Book» содержит подпрограмму, которая работает как метод конструктора класса. Здесь функция «bless» используется для связи переменных с именем класса, которое предоставляется во время вызова метода Init().





#!/usr/bin/perl

используйте строгий ;
использовать предупреждения ;
используйте 5.34.0 ;

#Определяем пакет
пакет Книга ;
#Определяем конструктор
под инициализацией
{
#Инициализируем имя класса
мой $className '=' сдвиг ;
#Инициализируем переменные
мои $переменные '=' {
«Имя книги» => сдвиг ,
'Имя автора' => сдвиг ,
'Год публикации' => сдвиг ,
'Цена' => сдвиг
} ;

#Устанавливаем ссылку с помощью референта
благослови $переменные , $className ;
#Вернем ссылочную переменную
возвращаться $переменные ;
}

#Создаем объект класса
моя $bookObj '=' Книга инициализации ( «Изучение Перла» , 'Рэндал Л. Шварц' , 1993 год , Четыре пять ) ;

#Распечатываем значения переменных класса
сказать «Подробности книги:» ;
сказать ' \п Название книги: $bookObj->{'BookName'}' ;
сказать «Имя автора: $bookObj->{'AuthorName'}» ;
сказать 'Год публикации: $bookObj->{'PublishedYear'}' ;
сказать 'Цена: \$ $bookObj->{'Цена'}' ;

Выход:

После выполнения скрипта появится следующий вывод:



  п1

Пример 2. Использование класса и объекта с несколькими методами

В этом примере пакет с именем «Продукты» содержит два метода. Одним из методов является Init(), который используется для инициализации необходимых переменных и обращения к переменным с именем класса с помощью функции «bless». Другой метод, Calculate_price(), используется для расчета цены продукта со скидкой.

#!/usr/bin/perl

используйте строгий ;
использовать предупреждения ;
используйте 5.34.0 ;

#Определяем пакет
пакет продукта ;
мои $переменные '=' { } ;

#Определяем конструктор
под инициализацией
{
#Инициализируем имя класса
мой $className '=' сдвиг ;
#Инициализируем переменные
$переменные '=' {

'Идентификатор' => сдвиг ,
'Имя' => сдвиг ,
'Цена' => сдвиг

} ;

#Устанавливаем ссылку с помощью референта
благослови $переменные , $className ;
#Вернем ссылочную переменную
возвращаться $переменные ;
}

#Declare метод для расчета цены со скидкой
суб-расчет_цена
{

моя $discount_price '=' $variables- > { 'Цена' } - $переменные- > { 'Цена' } * 0,1 ;
сказать 'Цена со скидкой: \$ $discount_price' ;

}

#Создаем объект класса
мой $proObj '=' Инициализировать продукт ( '6745' , «Монитор Делл» , пятьдесят ) ;

#Распечатываем значения переменных класса
сказать «Информация о продукте через 10 \% скидка: ' ;
сказать ' \п Идентификатор: $proObj->{'Id'}' ;
сказать 'Имя: $proObj->{'Name'}' ;
сказать 'Изначальная цена: \$ $proObj->{'Цена'}' ;

#Вызов метода объекта
$proObj- > вычислить_цену ( ) ;

Выход:

После выполнения скрипта появится следующий вывод:

  п2

Пример 3. Использование класса путем создания модуля

В этом примере пользовательский модуль Perl создается в отдельном файле с именем «CalPower.pm», где используется функция «bless». Создайте этот файл с помощью следующего сценария Perl. Этот модуль вычисляет «x н «где значения «x» и «n» взяты из сценария Perl, в который импортирован этот модуль.

#!/usr/bin/perl

используйте строгий ;
использовать предупреждения ;
используйте 5.34.0 ;

#Определяем имя пакета
пакет CalPower ;

#Определяем конструктор
под инициализацией
{
мой $className '=' сдвиг ;
мой $вар '='
{
число => сдвиг ,
власть => сдвиг
} ;

благослови $var , $className ;
возвращаться $вар ;

}

#Определяем метод расчета значения мощности
суб Рассчитать
{
мой $вар '=' сдвиг ;
мой $результат '=' $вар- > { 'число' } ;
для ( мой $я '=' 1 ; < $вар- > { 'власть' } ; $я++ )
{
$результат '=' $вар- > { 'число' } * $результат ;
}
возвращаться $результат ;

}

Создайте файл Perl со следующим сценарием, в который импортируется модуль «CalPower» для расчета мощности на основе входного значения, полученного от пользователя.

#!/usr/bin/perl

используйте строгий ;
использовать предупреждения ;
используйте 5.34.0 ;
используйте CalPower ;

#Возьмем базовое значение
Распечатать «Введите значение x:» ;
чавкать ( мой $х '=' <> ) ;
#Возьмите дол власти
Распечатать «Введите значение n:» ;
чавкать ( мой $n '=' <> ) ;

#Создаем объект класса
мой $Obj '=' Инициализировать CalPower ( , ) ;

#Распечатываем рассчитанное значение мощности
Распечатать '$x в степени $n равно ' ;
скажите $Obj- > Рассчитать ( ) ;

Выход:

После выполнения скрипта появится следующий вывод:

  п3

Заключение

В этом руководстве показано использование функции «bless» в Perl путем создания пакета в том же файле Perl и создания модуля в другом файле.