#!/usr/bin/env perl use strict; use warnings; use ExtUtils::CBuilder; my $cfile = 'hello.c'; (my $objfile = $cfile) =~ s/\.c$/.o/; # warning, it writes C program to your disk open(my $FH, '>', $cfile) or die "could not write C file ($cfile) to disk, $!"; print $FH $_ for(); close($FH); die "failed to write C file ($cfile) to disk." unless -f $cfile; # warning it will produce object file on your disk my $cbuilder = ExtUtils::CBuilder->new( config => { optimize => '-O7', }, ); $cbuilder->compile( source => $cfile, object_file => $objfile ); __DATA__ #include int main(void){ printf("hello\n"); }