If you want to change from hash, a concated scalar string is probably your best bet, unless you need an array of lines.Here is how to do either way.
# make a global array for storage
my @array;
#or make a global scalar string
my $storage_string;
.....
.....
while(!$channel->eof())
{
my $buff;
$channel->read($buff, 1024);
# print $buff;
push @array, $buf; # pushes $buf into next array slot
# or use a concated string
$storage_string .= $buf; # concantates $buf onto end of stri
+ng
}
When you want to read the array, you have a couple of options. Since your newlines may still be out of place, you may get staggered lines, but if you print
the array it may reassemble itself properly
$/ = ''; # change output separator to nothing instead of newline
print @array, "\n";
but this just recreates a string with embedded newlines
If you go with the concated string route, you can easily split on newlines:
my @lines=split( /\n/, $storage_string);
print "@lines\n";
# or since $storage_string contains embedded newlines, just printing i
+t would work
print "$storage_string\n";
Either way, an array joined with the output separator set to '', or a concated string
split on newlines should give good results.
|