In a previous reply (Re: Use of BEGIN block) , pfaut suggested using BEGIN and END blocks with the Command Switch n . Here is a complete example.
#!perl -n
use strict;
use warnings;
# USAGE: perl np.pl <np.dat
BEGIN{
our $total = 0;
}
our $total;
$total += $_;
END{
our $total;
print $total
}
Note that the package variable $total is in scope in all three blocks because it is declared in each with our. Is there a preferred way to do this? I understand that without strict, no declaration is necessary and with the use vars syntax, there is no restriction on scope.