Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Running a C Program within Perl.

by dmmiller2k (Chaplain)
on Dec 27, 2001 at 20:59 UTC ( [id://134642]=note: print w/replies, xml ) Need Help??


in reply to Running a C Program within Perl.

It's not clear which of two things you are asking

  • How to run an arbitrary external command line, which may or may not be the binary executable produced by compiling a C program.
  • How to call C code (say, as a subroutine call) directly from perl.
The answer to the first question is simple and threefold:
  1. Run the command with back-ticks, assigning its STDOUT to a variable: as in, my $result = `commandline`;
  2. Use the system() function: as in, my $rc = system("commandline > result.log");
  3. Open the command as a pipe (if, say, you expect lots of output):
    # note vertical bar (pipe) at end of command open PH, "commandline|" or die "commandline: $!"; while (<PH>) { # ... do something with each line of output } close PH or die "commandline: $!";

The answer to the second question is too involved to cover adequately here, but has been covered in depth elsewhere, among which are this and this.

Update: Another option, as posited by Sniper, is of course to use Inline.pm, but once again, that's a whole 'nother ball of wax.

dmm

You can give a man a fish and feed him for a day ...
Or, you can
teach him to fish and feed him for a lifetime

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-04-19 13:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found