Синтаксис:
Синтаксис функции «bless» приведен ниже. Эту функцию можно использовать с одним или двумя аргументами. Обычно эта функция используется с двумя аргументами, где первый аргумент — это ссылочная переменная, а второй аргумент — это имя класса, на который ссылается первый аргумент. Когда она используется с одним значением аргумента, ссылочная переменная относится к текущему пакету.
благослови рефери
или
благослови рефери , имя класса
Различные примеры функции Bless()
В этой части руководства показано использование функции bless() различными способами.
Пример 1. Использование простого класса и объекта
В этом примере пакет с именем «Book» содержит подпрограмму, которая работает как метод конструктора класса. Здесь функция «bless» используется для связи переменных с именем класса, которое предоставляется во время вызова метода Init().
#!/usr/bin/perl
используйте строгий ;
использовать предупреждения ;
используйте 5.34.0 ;
#Определяем пакет
пакет Книга ;
#Определяем конструктор
под инициализацией
{
#Инициализируем имя класса
мой $className '=' сдвиг ;
#Инициализируем переменные
мои $переменные '=' {
«Имя книги» => сдвиг ,
'Имя автора' => сдвиг ,
'Год публикации' => сдвиг ,
'Цена' => сдвиг
} ;
#Устанавливаем ссылку с помощью референта
благослови $переменные , $className ;
#Вернем ссылочную переменную
возвращаться $переменные ;
}
#Создаем объект класса
моя $bookObj '=' Книга инициализации ( «Изучение Перла» , 'Рэндал Л. Шварц' , 1993 год , Четыре пять ) ;
#Распечатываем значения переменных класса
сказать «Подробности книги:» ;
сказать ' \п Название книги: $bookObj->{'BookName'}' ;
сказать «Имя автора: $bookObj->{'AuthorName'}» ;
сказать 'Год публикации: $bookObj->{'PublishedYear'}' ;
сказать 'Цена: \$ $bookObj->{'Цена'}' ;
Выход:
После выполнения скрипта появится следующий вывод:
Пример 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- > вычислить_цену ( ) ;
Выход:
После выполнения скрипта появится следующий вывод:
Пример 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- > Рассчитать ( ) ;
Выход:
После выполнения скрипта появится следующий вывод:
Заключение
В этом руководстве показано использование функции «bless» в Perl путем создания пакета в том же файле Perl и создания модуля в другом файле.