I don't quite understand the problem but I can recommend this solution (especially if I allow for some cut'n'paste errors):
my $user = $query->param('user');
my $password = $query->param('password');
my @buffer; # !!! Added this line.
{
no strict;
$filename = $query->param('foofile');
undef $/;
my $buffer = <$filename>; # !!! Added "my" here.
$buffer =~ tr/\r\n/\n/;
@buffer= split /\n/, $buffer;
}
print $buffer[0];
Without a change like that, the
print $buffer[0]; line should have generated a fatal error.
Update: amelinda was kind enough to /msg me that this has already been tried. That seems very odd so I'll resort to voodoo programming (if I were working on this myself I'd instead be debugging to check what 0+\@buffer and 0+\@main::buffer evaluate to both inside and outside that block to try to figure out what bizarre thing was going on):
my $user = $query->param('user');
my $password = $query->param('password');
my @buffer= do {
local( $/ ); #= undef
no strict;
my $filename = $query->param('foofile');
split /\r?\n/, <$filename>;
}
print $buffer[0];
-
tye
(but my friends call me "Tye")