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