Aion-Run
view release on metacpan or search on metacpan
[](https://github.com/darviarush/perl-aion-run/actions) [](https://metacpan.org/release/Aion-...
# NAME
Aion::Run - ÑÐ¾Ð»Ñ Ð´Ð»Ñ ÐºÐ¾Ð½ÑолÑнÑÑ
команд
# VERSION
0.0.3
# SYNOPSIS
Файл lib/Scripts/MyScript.pm:
```perl
package Scripts::MyScript;
use common::sense;
use List::Util qw/reduce/;
use Aion::Format qw/trappout/;
use Aion;
with qw/Aion::Run/;
# Operands for calculations
has operands => (is => "ro+", isa => ArrayRef[Int], arg => "-a", init_arg => "operand");
# Operator for calculations
has operator => (is => "ro+", isa => Enum[qw!+ - * /!], arg => 1);
#@run math/calc âCalculateâ
sub calculate_sum {
my ($self) = @_;
printf "Result: %g\n", reduce {
given($self->operator) {
$a+$b when /\+/;
$a-$b when /\-/;
$a*$b when /\*/;
$a/$b when /\//;
}
} @{$self->operands};
}
1;
```
```perl
use Aion::Format qw/trappout/;
use lib "lib";
use Scripts::MyScript;
trappout { Scripts::MyScript->new_from_args([qw/-a 1 -a 2 -a 3 +/])->calculate_sum } # => Result: 6\n
trappout { Scripts::MyScript->new_from_args([qw/--operand=4 * --operand=2/])->calculate_sum } # => Result: 8\n
```
# DESCRIPTION
Ð Ð¾Ð»Ñ `Aion::Run` ÑеализÑÐµÑ Ð°ÑÐ¿ÐµÐºÑ `arg` Ð´Ð»Ñ ÑÑÑановки ÑÐ¸Ñ Ð¸Ð· паÑамеÑÑов командной ÑÑÑоки.
* `arg => "-X"` â именованнÑй паÑамеÑÑ. Ðожно иÑполÑзоваÑÑ ÐºÐ°Ðº ÑоÑÑкÑÑ **\-X**, Ñак и название ÑиÑи Ñ **\--**.
* `arg => natural` â поÑÑдковÑй паÑамеÑÑ. `1+`.
* `arg => 0` â вÑе неименованнÑе паÑамеÑÑÑ. ÐÑполÑзÑеÑÑÑ Ñ `isa => ArrayRef`.
# METHODS
## new_from_args ($pkg, $args)
ÐонÑÑÑÑкÑоÑ. Ðн ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð¾Ð±ÑÐµÐºÑ ÑÑенаÑÐ¸Ñ Ñ Ð¿Ð°ÑамеÑÑами командной ÑÑÑоки.
```perl
package ArgExample {
use Aion;
with qw/Aion::Run/;
has args => (is => "ro+", isa => ArrayRef[Str], arg => 0);
has arg => (is => "ro+", isa => ArrayRef[Str], arg => '-a');
has arg1 => (is => "ro+", isa => Str, arg => 1);
has arg2 => (is => "ro+", isa => Str, init_arg => '_arg2', arg => 2);
has arg_1 => (is => "ro+", isa => Str, init_arg => '_arg_1', arg => -1);
has arg_2 => (is => "ro+", isa => Str, arg => -2);
}
my $ex = ArgExample->new_from_args([qw/1 -a 5 2 --arg=6 -2 5 --_arg_1=4/]);
$ex->arg1 # => 1
$ex->arg2 # => 2
$ex->arg_1 # => 4
$ex->arg_2 # => 5
$ex->args # --> [1, 2]
$ex->arg # --> [5, 6]
```
# SEE ALSO
* [Aion](https://metacpan.org/pod/Aion)
# AUTHOR
Yaroslav O. Kosmina <dart@cpan.org>
# LICENSE
â **GPLv3**
# COPYRIGHT
The Aion::Run module is copyright (Ñ) 2023 Yaroslav O. Kosmina. Rusland. All rights reserved.
( run in 0.418 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )