(path to perl.exe) (path to perl file)file.pl < (inputfile with path) > (outputfile with path)
example:
C:\Perl\bin\perl.exe C:\test.pl < C:\sometextfile.txt > C:\someresultfile.txt
I call this *.bat file from within VB by using the following code:
iTask = Shell(Environ$("COMSPEC") & " /c " & sPath, vbHide)
pHandle = OpenProcess(SYNCHRONIZE, False, iTask)
If pHandle <> 0 Then
WaitForSingleObject pHandle, INFINITE
CloseHandle pHandle
End If
' sPath is the path to the bat file.
' You can do sPath = AddBackSlash(App.Path)&"batchfile.bat"
' to create the proper path in vb
####
use Common;
use Output;
use Analysis;
&Output::beginlogging;
#process file line by line
while ( $record = )
{
etc...
####
perl -I(path to dir. of modules) (path to script)\script.pl < (path to inputfile)\inputfile.txt > (path to outputfile)\outputfile.txt
####
This part goes in your general part of the vb file:>>>
Option Explicit
Private Declare Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Private Const INFINITE = -1&
Private Const SYNCHRONIZE = &H100000
This part goes in a function or subroutine:>>>
Dim iTask As Long, ret As Long, pHandle As Long
iTask = Shell(Environ$("COMSPEC") & " /c " & sPath, vbHide)
pHandle = OpenProcess(SYNCHRONIZE, False, iTask)
If pHandle <> 0 Then
WaitForSingleObject pHandle, INFINITE
CloseHandle pHandle
End If