in reply to Re: Parsing command-line arguments in a sophisticated way.
in thread Parsing command-line arguments in a sophisticated way.

split /--job /, join( ' ', @ARGV );

That doesn't seem particularly safe to me... see my suggestion here (combined with GetOptionsFromArray).

Replies are listed 'Best First'.
Re^3: Parsing command-line arguments in a sophisticated way.
by hdb (Monsignor) on Feb 05, 2019 at 09:22 UTC

    Not sure what you mean with "not safe". It is quite literally what was requested.

      Not sure what you mean with "not safe". It is quite literally what was requested.

      The OP said "We allow to use every possible string and argument after `--job`." For me, that includes the string --job itself.

      use Data::Dump; my @argv = qw/ foo --job X --job Y --job Z /; my ($args, $job) = split /--job /, join( ' ', @argv ); dd $args, $job; __END__ ("foo ", "X ")

      Another one, a command line of --hello "world --job foo" --job bar:

      use Data::Dump; my @argv = ('--hello','world --job foo','--job','bar'); my ($args, $job) = split /--job /, join( ' ', @argv ); dd $args, $job; __END__ ("--hello world ", "foo ")

        Gotcha! Clear lack of imagination on my side... Thanks!