Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^2: My first perl script is working, what did I do wrong?

by rjt (Deacon)
on Nov 08, 2012 at 22:55 UTC ( #1003017=note: print w/ replies, xml ) Need Help??


in reply to Re: My first perl script is working, what did I do wrong?
in thread My first perl script is working, what did I do wrong?

Multiple Variable Declaration can be broken down from:

my $headerLine= -1; my $prtIndex = -1; my $shpIndex = -1; my $clrIndex = -1; my $sizIndex = -1;

to:

my ($headerLine, $prtIndex, $shpIndex, $clrIndex, $sizIndex) = -1;

No, this won't do what you expect. Given:

  my ($a, $b, $c) = -1;

only $a will receive the value ($b and $c will be undef). You can, however, use:

  my ($a, $b, $c) = (-1, -1, -1);

That being said, I've found more often than not, when I have to start assigning the same value to a bunch of variables, there's probably a deeper design decision I need to question.

In this case, -1 is used as some sort of magic value to indicate the state of something. Although even better refactoring can be done in this case, at the very least leaving the variables as undef provides better information, especially if any of those variables might legitimately contain -1 in the future.


Comment on Re^2: My first perl script is working, what did I do wrong?
Select or Download Code
Re^3: My first perl script is working, what did I do wrong?
by Anonymous Monk on Nov 08, 2012 at 23:48 UTC
    Thanks for the replies. In case you couldn't tell, I typically program in C (and sometimes Java, although really when I use Java I treat it a lot like C). I will definitely keep these pointers in mind as I continue to learn how to hack together Perl scripts.
      ... and apparently it didn't post the above as me. Whatever.
Re^3: My first perl script is working, what did I do wrong?
by marquezc329 (Scribe) on Nov 09, 2012 at 00:29 UTC

    Thank you for your correction rjt. Crackers2 also notified me of this mistake. I edited my response to reflect an alternate method of accomplishing this.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2014-12-27 06:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (176 votes), past polls