Рубрики

Perl | Передача комплексных параметров в подпрограмму

Пререквизиты: Perl | Подпрограммы или функции

Функция или подпрограмма Perl — это группа операторов, которые вместе выполняют определенную задачу. На каждом языке программирования пользователь хочет повторно использовать код. Таким образом, пользователь помещает часть кода в функцию или подпрограмму, чтобы не было необходимости переписывать один и тот же код снова и снова. По этой причине функция или подпрограмма используется в каждом языке программирования. Эти функции или подпрограммы могут принимать различные типы структур данных в качестве параметров. Некоторые из них описаны ниже:

  1. Передача списков или массивов в подпрограмму
  2. Передача ссылок на подпрограмму
  3. Передача хешей в подпрограмму
  4. Передача файловых дескрипторов в подпрограмму

Передача списков или массивов в подпрограмму: массив или список могут быть переданы подпрограмме в качестве параметра, а переменная массива @_ используется для принятия значения списка внутри подпрограммы или функции.

Пример 1: здесь один список передается подпрограмме и отображаются их элементы.

#! / USR / бен / Perl

  
# Определение подпрограммы

sub Display_List 

      

    # массив переменных для хранения

    # переданные аргументы

    my @List1 = @_

          

    # Печать пропущенных элементов списка

    print "Given list is @List1\n"

  
Код водителя

  
# проходной список

@list = (1, 2, 3, 4); 

  
# Вызов подпрограммы с
# параметр списка

Display_List(@list); 

Выход:

Given list is 1 2 3 4

Пример 2: Здесь два списка передаются подпрограмме и отображаются их элементы.

#! / USR / бен / Perl

  
# Определение подпрограммы

sub Display_List 

      

    # массив переменных для хранения

    # переданные аргументы

    my @List3 = @_

          

    # Печать элементов пропущенных списков

    print "Given lists' elements are @List3\n"

  
Код водителя

  
# проходящие списки

@List1 = (1, 2, 3, 4); 

@List2 = (10, 20, 30, 40); 

  
# Вызов подпрограммы с
# список параметров

Display_List(@List1, @List2); 

Выход:

Given lists' elements are 1 2 3 4 10 20 30 40

Пример 3: Здесь скалярный аргумент и список передаются подпрограмме и отображаются их элементы.

#! / USR / бен / Perl

  
# Определение подпрограммы

sub Display_List 

      

    # массив переменных для хранения

    # переданные аргументы

    my @List2 = @_

          

    # Печать пропущенного списка и скалярных элементов

    print "List and scalar elements are @List2\n"

  
Код водителя

  
# проходящие списки

@List = (1, 2, 3, 4); 

  
# передача скалярного аргумента

$scalar = 100;

  
# Вызов подпрограммы с
# список параметров

Display_List(@List, $scalar); 

Выход:

List and scalar elements are 1 2 3 4 100

Передача ссылок на подпрограмму: Ссылки также могут быть переданы подпрограммам в качестве параметра. Здесь ссылка на данный массив передается подпрограмме и возвращается максимальное значение элементов массива.

Пример:

#! / USR / бен / Perl

use warnings;

use strict;

  
# Создание массива некоторых элементов

my @Array = (10, 20, 30, 40, 50);

  
# Создание ссылки на вышеуказанный массив
# и вызов подпрограммы с
# ссылка на массив в качестве параметра

my $m = max(\@Array);

  
# Определение подпрограммы

sub max

{

      

    # Получение элементов массива

    my $Array_ref = $_[0];

    my $k = $Array_ref->[0];

  

    # Итерации по каждому элементу

    # массив и поиск максимального значения

    for(@$Array_ref)

    {

        $k = $_ if($k < $_);

    }

    print "The max of @Array is $k\n";

}

Выход:

The max of 10 20 30 40 50 is 50

Передача хеша в подпрограмму: Хеш также может быть передан подпрограмме в качестве параметра, и отображается ее пара ключ-значение.

Пример:

#! / USR / бен / Perl

  
# Определение подпрограммы

sub Display_Hash 

      

    # Хеш-переменная для хранения

    # переданные аргументы

    my (%Hash_var) = @_

          

    # Отображение пропущенных элементов списка

    foreach my $key (keys %Hash_var

    

        my $value = $Hash_var{$key}; 

        print "$key : $value\n"

    

  
Код водителя

  
# определение хэша

%Hash = ('Company' => 'GeeksforGeeks'

         'Location' => 'Noida'); 

  
# вызов подпрограммы с параметром хеша

Display_Hash(%Hash); 

Выход:

Company : GeeksforGeeks
Location : Noida

Передача файловых дескрипторов в подпрограмму: для создания файла или доступа к содержимому файла требуется файловый дескриптор, представляющий собой не что иное, как структуру, которая используется вместе с операторами для доступа к файлу в определенном режиме, таком как чтение, запись, добавление и т. Д. FileHandles также можно передать подпрограмме в качестве параметра для выполнения различных операций над файлами.
В приведенном ниже примере файловый дескриптор передается подпрограмме:
Пример:

#! / USR / бен / Perl

     

sub printem

{

    my $file = shift;

   

    while (<$file>) {

         print;

    }

}

   

open(fh, "Hello.txt") or die "File '$filename' can't be opened";

   

printem *fh;

Выход:

Рекомендуемые посты:

Perl | Передача комплексных параметров в подпрограмму

0.00 (0%) 0 votes