I want to know how to call a perl script in C# app and how to communicate between the app and this script. for example, how does the C# app know if the perl script has finished running? could the app get the return code from the perl script? could the perl script send some info to the app when it is running?


You could use the Process or ProcessStartInfo classes to call the perl.exe process with the argument being the script.
Then you could use the properties of said classes to see if the script is still running. To actually get info from it, you're probably going to have to write the info to a file then read that file from the C# app when the perl.exe process has finished running.

I like to call a perl function, that accepts one paramer and return a value... can you please tell me how can i call a function inside a perl file to do this? and get the returned values in c#....

i would like to call a perl function from c# and receive the value in c#!