0

与えられた入力、たとえば を取り、それに対して特定の解析を実行し、それらの解析の出力でハッシュを埋めたいと思います。たとえば、次の入力が必要です。

"barcodedSamples": "{\"I-735\":{\"barcodes\":[\"IonXpress_001\"]},\"13055\":{\"barcodes\":[\"IonXpress_002\"]}}",

次のようにバーコードとサンプル名をリストするテーブルに解析されます (grep と、私がよく把握していないより具体的な操作の組み合わせを使用)。

barcode         sample
IonXpress_001   I-735
IonXpress_002   13055

ここで、「バーコード」と「サンプル」がキーとして扱われます。もう 1 つの例は、次の行に grep したい場合です。

"library": "hg19",

値 "hg19" (つまり、プログラム的に言えば、2 番目の引用符のセット内の文字列) を "lib" などの任意のキーにマップします。

Library
hg19
4

2 に答える 2

3

この文字列は JSON に非常に似ていますが、有効な JSON にするにはいくらかクリーンアップする必要があります。

#!/usr/bin/perl
use strict;
use warnings FATAL => qw/all/;
use JSON;
use Data::Dumper;

my $json_string = '"barcodedSamples": "{\"I-735\":{\"barcodes\":[\"IonXpress_001\"]},\"13055\":{\"barcodes\":[\"IonXpress_002\"]}}"';

$json_string =~ s/\\//g;                 # remove escape backslashes.
$json_string =~ s/"\{/{/;                # remove an invalid opening quote.
chop $json_string;                       # remove an invalid closing quote.
$json_string = '{' . $json_string . '}'; # wrap in curly braces.

my $json_object = JSON->new( );

my $perl_ref = $json_object->decode( $json_string );

print Dumper( $perl_ref );
于 2013-10-21T18:33:44.673 に答える
1

解析している文字列は疑わしいほど JSON に似ています。独自のパーサーを作成する代わりに、JSON モジュール (新しい Perls に付属していますが、古いものは CPAN からインストールできます) を使用しないのはなぜですか?

于 2013-10-21T18:21:46.497 に答える