Q&A > programs and processes
Description:Under Win NT using cmd.exe as the shell:
Any ideas?On the command line -F works fine >perl -naF, -e "print @F" all_data.txt >perl -naF/,/ -e "print @F" all_data.txt >perl -naF',' -e "print @F" all_data.txt >perl -naF"," -e "print @F" all_data.txt But in a shebang line in a file I can't find a way to have the switch processed: script.pl #!/usr/bin/perl -na -F, print @F; >script.pl all_data.txt ... not split, $F eq $_ With -F/,/ or -F"," or -F',' I get: >script.pl all_data.txt syntax error at E:\gust\script.pl line 2, near "print"
|Answer: Does #!perl -na -F/,/ work on Win NT?|
contributed by BrowserUk
Unfortunately, CMD.EXE does use the shebang line in your perl script. The Win32 mechanism for knowing which executable to use to process a given file is quite different. Being ASSOC and FTYPE; On my system these are set as follows:
Use HELP ASSOC|FTYPE for fulll definition of these commmands.
You will notice that I have modifes the ftype line and added the -w before any passed args. You could modify this on your system to have the -naF switches, but this would then be used for all Perl scripts run on that system which isn't very useful.
The second and probably best alternative is to use the ActiveSystems (assuming your using AS) supplied pl2bat command on your script, and the edit the top of it to have the switches you want.
Example: (additions in bold):
perl -x -S "%0" -na -F %1 %2 %3 %4 %5 %6 %7 %8 %9
perl -x -S %0 -na -F %*
#YOUR CODE START HERE!!!
For further information for ActiveState installations read the AS docs at: A/S docs
(The above link assumes AS perl istalled in the default directories on your C: drive. Adjust as necessary on the addressline of your browser.
Edited bits per authors req. - dvergin 2002-07-29
Please (register and) log in if you wish to add an answer
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr