Как я могу изменить позиционные аргументы на именованные аргументы в этом коде, пожалуйста?

Я был бы признателен, если бы кто-нибудь сказал мне, как я могу изменить позиционные аргументы на именованные аргументы в этом коде Perl, пожалуйста?

#!/usr/bin/perl -w

sub diskUsageMon {
    my ($hash_ref, $array_ref) = @_;

    unless ( open(DF, "df -kh 2>&1 |") ) {
        chomp $!;
        push $array_ref, "Failed to start command df", "Reason: $!";
        return 1;
    }; # Unless

    while ( <DF> ) {
        next if /^Filesystem/;
        @df = split;
        my ($mount, $use) = @df[5,4];
        $hash_ref->{$mount} = $use;
    }; # While

    close DF;

    return 0;
}; # sub

#---------------------------------------------------------#

%hash_ref = ();
@array_ref = ();

if ( &diskUsageMon(\%hash_ref, \@array_ref) ) {
    die "Error detected!\n", "Reason: ", join("\n", @array_ref), "\n";
};

person jtech    schedule 19.09.2018    source источник
comment
stackoverflow.com/q/12962461/1531971   -  person    schedule 19.09.2018
comment
что ты уже испробовал? Что не работает в том, что вы пробовали до сих пор?   -  person Matt Jacob    schedule 19.09.2018
comment
Пока это работает, я просто хочу заменить позиционные аргументы на именованные аргументы и максимально сохранить исходную структуру.   -  person jtech    schedule 19.09.2018
comment
Для чего нужен chomp $!?   -  person Borodin    schedule 19.09.2018
comment
Stack Overflow — это репозиторий ответов на конкретные вопросы по программированию, а не место, где можно бесплатно получить усилия по программированию. Сделайте все возможное, чтобы написать код самостоятельно — это совсем не сложно — и в том маловероятном случае, если вы не сможете заставить его работать, опубликуйте свой код здесь и попросите помощи в его исправлении.   -  person Borodin    schedule 19.09.2018
comment
Если я правильно понял, это место для обращения за помощью по конкретному вопросу, но здесь нельзя обратиться за помощью по конкретному вопросу, верно? кстати: я использовал chomp $! чтобы избежать создания пустых строк из вывода в массиве.   -  person jtech    schedule 20.09.2018
comment
@jtech: Stack Overflow — это сайт вопросов и ответов, и ваша проблема слишком широка, особенно если вы не пытаетесь решить ее самостоятельно. Я предлагаю вам взглянуть на Почему «Кто-нибудь может мне помочь?» не актуальный вопрос?.   -  person Borodin    schedule 20.09.2018
comment
@jtech Я понимаю, что это работает прямо сейчас, но вы сказали, что хотите внести изменения, чтобы код делал что-то еще. Что вы пробовали, чтобы произвести эти изменения, и почему это не сработало?   -  person Matt Jacob    schedule 20.09.2018
comment
В то время как заголовок вопроса, который является дубликатом, содержит в себе объект, ответы обсуждают и показывают вам именно то, что вы спрашиваете.   -  person zdim    schedule 20.09.2018
comment
Я откатил ваше редактирование к вопросу, который искажал его. Даже если ваш вопрос дублируется и на него уже есть хороший ответ, кто-то другой может найти этот ответ, ища вопрос, который вы задали. Вы не нашли правильный ответ самостоятельно, но теперь это может сделать следующий человек из-за дубликата.   -  person simbabque    schedule 20.09.2018
comment
Ответ в повторяющейся цели выглядит так, как будто он говорит о чем-то другом, но на самом деле он точно говорит вам, что вам нужно сделать, даже если это в другом контексте. По сути, вы хотите присвоить @_ хешу в вашей функции. Вот и все. Обратите внимание, что имена переменных, такие как $array_ref и $hash_ref, действительно сбивают с толку, потому что они ничего не говорят о типе данных, которые в них содержатся. По тому, как используется переменная, очевидно, что это ссылка на массив, но что она содержит? Если вам нужны позиционные параметры, вам нужно подумать об этом.   -  person simbabque    schedule 20.09.2018
comment
@simbabque Спасибо за откат и за разъяснения. Примечание: я отредактировал заголовок дубликата таргета, добавив к нему именованные параметры. В нем полно полезной информации по этой теме (и я уже цитировал ее несколько раз), но ее было нелегко найти, так как название не давало никакой подсказки.   -  person zdim    schedule 21.09.2018