[Gllug] Poor scripting?!
farnsaw at stonedoor.com
Tue Mar 11 18:43:42 UTC 2008
Andrew Black - lists wrote:
> Andrew Farnsworth wrote:
>> This won't work, mainly because the perl string operator 'eq' does not
>> recognize wild cards (i.e. the * character). You will need to do a
>> regex match to determine if ($_ =~ /cerprod$/) which will match the
>> string 'cerprod' at the end of the string contained within the $_ variable.
> Which can more succinctly be written as
> if ( /cerprod$/ )
You are correct, however, I NEVER use this form as it confuses non-perl
programmers where ($_ =~ /cerprod$/) may confuse them but it gives them
something to work with and things (like $_) to search for to get help.
I write code in a land where the people who will be maintaining my code
> This is because $_ is the default operand to a match.
> > $regexp = shift @ARGV
> Would normally be written
> $regexp = shift
> It is a usage that is (IMHO) so common in Perl that I wouldn't stop to
> think that it is looking at @ARGV
Again, I would explicitly define my variables and breakup @ARGV into them.
my ($arg1, arg2, arg3) = @ARGV;
Though there are cases where you need to deal with variable number of
parameters in which case this doesn't cut it. But remember, that I am
writing for non-perl programmers to maintain it.
Gllug mailing list - Gllug at gllug.org.uk
More information about the GLLUG