Beefy Boxes and Bandwidth Generously Provided by pair Networks Frank
"be consistent"
 
PerlMonks  

Re: Re: Re: question about perl

by Trimbach (Curate)
on Mar 13, 2002 at 13:07 UTC ( #151366=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: question about perl
in thread How do I change the shebang line for all perl scripts in a directory

Yeah, I know about the "anywhere in the script" thingy, but

perl -pi.bak -e 's[^#!/usr/local/bin/perl][#!/usr/bin/perl]' *.pl
yields a "/usr/local/bin/perl][: Event not found." error on my Perl 5.6.1 system, which is why I didn't post my original answer with an anchor metacharacter. Don't really know why the "^#!" is freaking out the regex, but on further examination it looks like the ! has to be escaped. I've corrected the code in my original post to compensate.

And all of this:

perl -pi.bak -e 'BEGIN{$c=@ARGV};s[^#!/usr/local/bin/perl][#!/usr/bin/ +perl] && $c-- if $c> @ARGV' *.pl
can replaced with this:
perl -pi.bak -e 'BEGIN{undef $/};s[^#\!/usr/local/bin/perl][#\!/usr/bi +n/perl]' *.pl
...which at least saves some typing, and is a bit more understandable besides. :-D

Gary Blackburn
Trained Killer

Update: The exclamation mark needs escaping because I'm using tcsh, a csh-style shell. Anyone using a different type of shell (such as bash or other Bourne-type shell) shouldn't have to escape the ! at all. What a pain in the butt... :-(


Comment on Re: Re: Re: question about perl
Select or Download Code
Re: Re: Re: Re: question about perl
by rnahi (Curate) on Mar 13, 2002 at 14:00 UTC
    This is my output from Deparse in both Perl 5.6.0 and 5.6.1
    perl -MO=Deparse -pi.bak -e "s[^#!/usr/local/bin/perl][#!/usr/bin/perl +]" LINE: while (defined($_ = <ARGV>)) { s[^#!/usr/local/bin/perl][#!/usr/bin/perl]; } continue { print $_; } -e syntax OK
    There was no need for escaping the "!" and it worked fine (I searched perlre about the need for escaping the bang, but I couldn't find it. Did I miss something?).
    So I couldn't replicate your error condition. Sorry.
    However, I agree that your script is more readable. :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://151366]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (14)
As of 2014-04-23 20:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (554 votes), past polls