The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Inline::MonoCS - Use CSharp from Perl, via Mono

SYNOPSIS

Hello World

  use Inline::MonoCS
    method        => "HelloWorld",
    compiler_args => "",
    code          => <<"CODE";
  public class HelloWorld
  {
      public static void Main( string[] args)
      {
          System.Console.WriteLine( "Hello, " + args[0] + "!" );
      }
  }
  CODE

  warn HelloWorld("Frank"); # "Hello, Frank!"

Talk to Microsoft SQL Server from Linux

  use Inline::MonoCS
    method        => "ProductCount",
    compiler_args => "-r:System.Data.dll",
    code          => <<'CODE';
  using System;
  using System.Data;
  using System.Data.SqlClient;

  public class ProductCount
  {
      public static void Main(string[] args)
      {
         string connectionString =
            "Server=111.222.111.222;" +
            "Database=northwind;" +
            "User ID=sa;" +
            "Password=s3cr3t;";
         IDbConnection dbcon;
         using (dbcon = new SqlConnection(connectionString)) {
             dbcon.Open();
             using (IDbCommand dbcmd = dbcon.CreateCommand()) {
                 string sql =
                     "SELECT COUNT(*) AS ProductCount " +
                     "FROM Products";
                 dbcmd.CommandText = sql;
                 using (IDataReader reader = dbcmd.ExecuteReader()) {
                     while(reader.Read()) {
                         int ProdCount = Convert.ToInt32( reader["ProdCount"] );
                         Console.WriteLine( ProdCount );
                     }
                 }
             }
         }
      }
  }
  CODE

  my $count = ProductCount();
  warn "We have $count products";

DESCRIPTION

This module provides a simple bridge to execute code written in C# from Perl.

It works by compiling your code, then placing the executable under /tmp/ and exporting a subroutine into the calling package. When you call that exported subroutine, the compiled exe is executed and given your arguments on the command-line.

Whatever your program outputs to STDOUT is considered the return value.

AUTHOR

Written by John Drago <jdrago_999@yahoo.com>

LICENSE

This software is Free software and may be used and redistributed under the same terms as perl itself.