Size: a a a

2021 April 27

DF

Denis F in Modern::Perl
Нет, на переписывании примерно 40 скриптов или написании собственного парсера аргументов
источник

АН

Андрей Нагорный... in Modern::Perl
spasibo
источник

VG

Vadim Goncharov in Modern::Perl
по-хорошему еще и справку дать надо

use Getopt::Long::Descriptive;

sub option_spec {
   [ 'verbose|v!'  => 'be verbose, by default also influences logger'      ],
   [ 'debug|d:+'   => 'pass debug (2=trace) to AE::log', { default =>0 }   ],
   [ 'session=s'   => 'name of session data save file', { default => 'session.dat'} ],
   [ 'config|c=s'  => 'name of configuration file', { default => "teleperl.conf" } ],
   [ 'logfile|l=s' => 'path to log file', { default => "cborsave.log" }    ],
}

my ($opts, $usage);

eval { ($opts, $usage) = describe_options( '%c %o ...', option_spec() ) };
die "Invalid opts: $@\nUsage: $usage\n" if $@;

my $session = retrieve( $opts->session ) if -e $opts->session;
my $conf = Config::Tiny->read($opts->config);
$AnyEvent::Log::FILTER->level(
   $opts->debug > 1 ? "trace" : "
...
источник

DF

Denis F in Modern::Perl
Там там тоже описывать надо
источник

VG

Vadim Goncharov in Modern::Perl
как будто что-то плохое
источник

VG

Vadim Goncharov in Modern::Perl
а если уж колхозить, ну сгенери код под этот хэш для Getopt::Long да и всё.
источник

DF

Denis F in Modern::Perl
Чтобы сгенерить код - мне надо распарсить аргументы :) А если я их уже распарсил, то нахер мне что-то еще генерить ?:)
источник

VG

Vadim Goncharov in Modern::Perl
тогда непонятно, что у тебя за задача
источник

VG

Vadim Goncharov in Modern::Perl
зачем, если они уже парсят?
источник

DF

Denis F in Modern::Perl
Кароч я свой парсер написал уже :)
источник

VG

Vadim Goncharov in Modern::Perl
и эти велосипедисты на гошников в соседнем чате наезжают...
источник

DF

Denis F in Modern::Perl
шопаделать, если готового решения нет :(
источник

DF

Denis F in Modern::Perl
Но у меня хоть тесты есть :)
источник

VG

Vadim Goncharov in Modern::Perl
я не понимаю, в чем проблема сгенерировать код вида

my %opts = (debug => 0);
GetOptions(\%opts,
   'debug|d:+',
   'logfile=s',
   'help', 'h|?'

зачем для этого писать аж свой парсер?
источник

DF

Denis F in Modern::Perl
Потому что парсер поправить быстрее чем все скрипты которые его юзают
источник

VG

Vadim Goncharov in Modern::Perl
дичь
источник

DF

Denis F in Modern::Perl
такова жизнь :(
источник

DF

Denis F in Modern::Perl
Кстати два года назад там был GetOpt :) Но потом его выпилили в пользу кастомного парсера
источник

VG

Vadim Goncharov in Modern::Perl
говнокодеры какие-то
источник

DF

Denis F in Modern::Perl
Да :(
источник