Rance Hall wrote:
> assume the following code:
>
> my $output = qx{systemcall};
>
> assume that the output of the systemcall looks something like this
>
> name\n
> value\n
> name\n
> value\n
> name\n
> value\n
> name\n
> value\n
> name\n
> value\n
> name\n
> value\n
> ...
>
> what like to do is get the name/value pairs into a hash of some sort
>
> split wants to split on EACH "\n"
>
> I think what I need to do is split every other "\n" and then go back and
> split each name\nvalue pair.
>
> But I'm open to suggestions about HOW to accomplish this.
In list context qx// returns a list and you can assign a list directly to a
hash, for example:
my %hash = qw{ one two three four };
So the only remaining problem is ensuring that the list contains an even
number of items. If you assume that your data is valid then a simple way to
do what you want would be:
my %hash = qx{systemcall} =~ /.+/g;
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>