http://www.perlmonks.org?node_id=1003017


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.