Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^2: Parser for C/C++ application using Getopt::Declare and Convert::Binary::C

by sg (Pilgrim)
on Feb 12, 2011 at 19:49 UTC ( #887789=note: print w/replies, xml ) Need Help??


in reply to Re: Parser for C/C++ application using Getopt::Declare and Convert::Binary::C
in thread Parser for C/C++ application using Getopt::Declare and Convert::Binary::C

True; the perl solution does involve some "double book-keeping work" and other inconveniences, and it might be preferable to keep the argument parsing entirely in C using getopt() or other libraries like http://argtable.sourceforge.net/ Argument parsing involves parsing, perl is a good tool for parsing, and so I wanted to see what a perl based solution might look like. And I am not sure getopt() supports the features supported by Getopt::Declare.
  • Comment on Re^2: Parser for C/C++ application using Getopt::Declare and Convert::Binary::C

Replies are listed 'Best First'.
Re^3: Parser for C/C++ application using Getopt::Declare and Convert::Binary::C
by roboticus (Chancellor) on Feb 12, 2011 at 20:00 UTC

    sg:

    Perl definitely has some good parsing mojo, so I can understand that aspect of it. Perhaps it might make sense to make an Inline::C interface to your code? You could rename main(), and then do all your argument parsing and verification straight from perl. Then, if everything passes muster, you can call what would've been your main(), but with exactly predictable arguments (i.e., no further parsing required). That would reduce a little of the back & forth, and simplify keeping the perl in synch with the C, as the bits that would need to cooperate can be in the same module. That way, you'd get the parsing goodness of Getopt::Declare, and it might be a bit less work.

    Just a thought.

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://887789]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2022-12-09 03:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?