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# 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 }
but this just recreates a string with embedded newlines$/ = ''; # change output separator to nothing instead of newline print @array, "\n";
If you go with the concated string route, you can easily split on newlines:
Either way, an array joined with the output separator set to '', or a concated string split on newlines should give good results.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";
In reply to Re^3: redirect stdout into hash
by zentara
in thread redirect stdout into hash
by doctorspears
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |