My perl expertise is limited---I've never used a perl module before, for example. So I would welcome advice in the form of pointers to online documentation, or to books, to help me with the following task.

An XP computer runs a program that I will call MetaRobot.To run a robotically controlled microscope, one needs to persuade MetaRobot to "read" a program that I will call AssemblyRobot, because writing it is like writing in assembly language. On firing up, MetaRobot produces a GUI with boxes and menus and other GUI stuff. This GUI is used first to construct (write) AssemblyRobot, and then to run AssemblyRobot. Neither MetaRobot nor AssemblyRobot have anything to do with perl. All interaction with MetaRobot is via standard GUI operations---mouse clicks in certain boxes, menu selection. keyboard strokes---and the manufacturers intend it for human use (Brave New World's delta class). The only interaction with AssemblyRobot is writing it and executing it.

The problem is that AssemblyRobot is at a very low level. One needs thousands of lines to tell the robot to do something fairly simple. Writing AssemblyRobot is error-prone and extremely time-consuming. The manufacturer of the robot is prepared to make things easier for us, but at an expense that we can't meet, and in an impossibly long time-frame. Furthermore, I would expect low quality software from the manufacturer and a refusal to let us see the source code.

I would like to write a perl meta-program Robot.pl that interacts with MetaRobot to produce AssemblyRobot. It seems that this has to be done by persuading the XP machine that certain mouse operations have been performed and certain keys on the XP machine depressed, this as a substitute for human actions. I plan to make low level parametrized functions, and build up to more complex functions that call the lower level functions. My idea is to test from the bottom level up, as the lower level functions are written. I hope that what I write can be put to use immediately as it's written, because it seems that the whole perl project will be quite lengthy, particularly in view of my other commitments.

My questions are: is this feasible and is Perl a reasonable way to go? Which perl modules are relevant, and how can I conveniently learn to use these modules? I also have to learn how to download modules, and the modules on which they depend. Can you direct me to documentation that is preferably at my level? I have written quite a bit of perl over the years, but "contact with the outside world" has been limited to getting data from files and writing to files.


In reply to Controlling a non-perl GUI by dbae

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.