in reply to Ant and Perl

I'd be surprised if you found any resources regarding Perl and Ant. The existing framework for building/testing/distributing Perl modules is fairly well-documented and ubiquitous, and most Perl projects use make if they need something more.

Running Perl scripts from Ant just requires the exec task, and the only thing to note is that the executable is the perl binary and your script is the first argument, like:

<target name="generate_session_descriptor" depends="init" description="Descriptor fragments for a session bean"> <exec executable="perl"> <arg value="${generate}/generate_session_descriptors.pl"/> <arg value="-d ${meta-inf}"/> <arg value="-n ${bean_name}"/> <arg value="-r ${bean_name}"/> <arg value="-h ${bean_name}Home"/> </exec> </target>

Hope this helps.

Chris
M-x auto-bs-mode

Replies are listed 'Best First'.
Re: Re: Ant and Perl
by P0w3rK!d (Pilgrim) on May 30, 2002 at 21:15 UTC
    Hello,

    Description:

    I'll be building new Java classes for everything else I need to implement. I've already build one class and was able to reference it through ANT. However, there are several Perl scripts I need to launch. I have been unable to get this simple example to work. Is there some trick to getting the CLI options to the perl script you are executing?

    Code:

    <?xml version="1.0"?> <project name="projectfoo" default="targetfoo" basedir="."> <description> Ant+Perl test </description> <target name="targetfoo" description="launch perl script"> <exec executable="perl"> <arg value="c:\mydir\foo.pl"/> <arg value="-f c:\xyz\filename.txt"/> </exec> </target> </project>
    I get the following error:

    Output:

    Build sequence for target `projectfoo' is targetfoo Complete build sequence is targetfoo

    test2:
         exec Current OS is Windows 2000
         exec Executing 'perl' with arguments:
         exec 'foo.pl'
         exec The ' characters around the executable and arguments are
         exec not part of the command.
    

    Thank you :)
    -P0w3rK!d

      The fact that the argument regurgitation says foo.pl instead of c:\mydir\foo.pl is a red-flag that some interpolation is going on. Try c:/mydir/foo.pl or c:\\mydir\\foo.pl. Likewise with the other argument.

      Chris
      M-x auto-bs-mode

        That appears to work. However, the output from foo.pl goes into hyperspace... Puzzling... Thank you for your help. :)
        -P0w3rK!d
        Buildfile: build.xml
        
        init:
        
        main:
           mytask Foo...
        
        foo:
        
        BUILD SUCCESSFUL
        Total time: 7 seconds