Jim Freeze <jim / freeze.org> wrote:
>
>On Fri, 2 Feb 2001, Frank Mitchell wrote:
>
> > On Linux, you can try:
> >
> > 	#!/usr/bin/env ruby
> >
> > Dunno if that will work on Windows, though.  How do Perl scripts run?
> >
>
>For versions where you cannot associate a file type (ie, . followed by a
>three letter suffix) there is a nice perl app that will convert a perl
>program to a batch file. Essentially it adds a header to the file and
>bootstraps perl to launch the file and passes perl the command line args.
>
>I don't know if this is a general perl program or just available by
>ActiveState. It's been a while, I think the name is pl2bat or something
>like that.

It is actually shipped on 5.6.  The tricks used is that Perl
can name something with @ (which is the the symbol that tells
DOS it is a comment), if you start a single-quote, the
string will go as far as needed, and Perl can end with
__END__.

Here is the output of a small piece of code I had lying
around:

@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S "%0" %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#!/usr/local/bin/perl
#line 15
my $sub = chunker(\*STDIN, 3);
while (my @chunk = $sub->()) {
  print "Got a chunk\n";
}

sub chunker {
  my $fh = shift;
  my $count = shift;
  return sub {
    my @ret;
    while (@ret < $count and <$fh>) {
      push @ret, $_;
    }
    return @ret;
  };
}


__END__
:endofperl



>If someone can post the header, it will be easy to see if Ruby can use the
>same trick.
>
>
>====================================================
>Jim Freeze
>jim / freeze.org
>---------------------------------------------------
>** http://www.freeze.org **
>====================================================
>

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com