기본적으로 문자열에 저장된 테이블을 해시 배열로 변환하려고합니다. 내 데이터는 다음과 같습니다.다중 행 문자열을 Perl의 해시 배열로 변환하는 방법
model |part_number |type |serial_number |
----------------------|--------------|-----------------|----------------|
SCBE-MX-S |750-031391 |CB |ZV1111 |
SCBE-MX-S |750-031391 |CB |ZR1111 |
SCBE-MX-S |750-031391 |CB |ZV1111 |
어떻게 이것을 해시 배열에 넣을 수 있습니까?
그래서 기본적으로 여기에 지금까지 내 코드입니다
array 0
model => SCBE-MX-S
PartNumber => 750-031391
type => CB
serialNumber => ZV1111
array 1
......
과 같을 것이다. 그것은 괜찮은 일하지만 지금은 단 하나의 배열 대신 해시의 배열을 사용하여 변환해야합니다.
use strict;
use warnings;
my @data;
my @data_;
my @index_;
my $input = `lrm show -t=model,part_number,type,serial_number component\\(chassis_resource_name=wf-nashville\\)`;
@data=split(/\n/, $input);
foreach my $token (@data){
@data_ = split(/\|/,$token);
my %fields = (
"model" => $data_[0],
"partNumber" => $data_[1],
"type" => $data_[2],
"serialNumber" => $data_[3],
);
push @index_, \%fields;
}
use Data::Dump;
dd \@index_;
출력
[
{
model => "25 records found.",
partNumber => undef,
serialNumber => undef,
type => undef,
},
{
model => "model ",
partNumber => "part_number ",
serialNumber => "serial_number ",
type => "type ",
},
{
model => ("-" x 22),
partNumber => "--------------",
serialNumber => "----------------",
type => "-----------------",
},
는 어디 붙어 있습니까? – Amey
줄 바꿈에서 문자열 배열로 분할합니다. 한 줄을 하나의 해시로 변환하는 함수로 매핑합니다. –
저는 Perl을 처음 사용하기 때문에 실제로 이런 일이 일어나도록 코드를 작성해야합니다. – Korey