[Edinburgh-pm] Code cleanup
Aaron Crane
perl at aaroncrane.co.uk
Mon Mar 5 14:30:53 PST 2012
Miles Gould <miles at assyrian.org.uk> wrote:
> On 05/03/12 17:24, Aaron Crane wrote:
>> lines 20, 22, 52: perhaps use <> instead of manually opening the file
>
> My concern here is error reporting: you can get the name of the
> currently-open file from $ARGV, but $. increases across files. What's the
> best way round this?
`perldoc -f eof` suggests this:
while (<>) {
# ...
}
continue {
close ARGV if eof;
}
However…
> Also, I don't know what's the correct behaviour for the
> program if it's handed several datasets - currently it ignores everything
> before the final "probes" line, which is almost certainly wrong.
… that's a good point. Perhaps leave in the check that @ARGV is 1,
but still use <> for convenience.
>> lines 26, 76: inconsistent that these aggregates get an empty
>> initializer, when most don't (lines 25, 56, 57)
>
> What's best practice here - explicit initializers, or not?
I'd always avoid them — what could an array or hash without an
initialiser be initialised to if *not* an empty aggregate? Including
them just seems like unnecessary clutter to me.
> Another question: what's the best way of getting the user to install all the
> dependencies? Add a Makefile.PL and tell them to run "cpan ."?
I'd recommend cpanminus rather than cpan, but yes, that's a pretty
simple option.
--
Aaron Crane ** http://aaroncrane.co.uk/
More information about the Edinburgh-pm
mailing list