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.