{
"/": {
"type": "dir",
"files": [
{
"p": {
"type": "dir-link",
"source": "/nfs/data/project",
"files": [
{
"xa": {
"type": "dir",
"files": [
{
"tools": {
"type": "dir",
"files": [
{
"sd": {
"type": "dir",
"files": [
{
"su2av": {
"type": "dir",
"files": [
{
"duf": {
"type": "dir",
"files": [
{
"0.4.0": {
"type": "dir-link",
"source": "/nfs/vsa/project/xa/vuvua/su2av",
"files": [
{
"bin": {
"type": "dir",
"files": [
{
"duf": {
"type": "link-file",
"source": ".run"
}
},
{
".run": {
"type": "file"
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"nfs": {
"type": "dir",
"files": [
{
"data": {
"type": "dir",
"files": [
{
"project": {
"type": "dir",
"files": []
}
}
]
}
},
{
"vsa": {
"type": "dir",
"files": [
{
"project": {
"type": "dir",
"files": [
{
"xa": {
"type": "dir",
"files": [
{
"vuvua": {
"type": "dir",
"files": [
{
"su2av": {
"type": "dir",
"files": []
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
]
}
}
####
/p/xa/tools/sd/su2av/duf/0.4.0/bin
/nfs/data/project
/nfs/vsa/project/xa/vuvua/su2av
####
my $j = '{ "/": { "type": "dir", "files": [ { "p": { "type": "dir-link", "source": "/nfs/data/project", "files": [ { "xa": { "type": "dir", "files": [ { "tools": { "type": "dir", "files": [ { "sd": { "type": "dir", "files": [ { "su2av": { "type": "dir", "files": [ { "duf": { "type": "dir", "files": [ { "0.4.0": { "type": "dir-link", "source": "/nfs/vsa/project/xa/vuvua/su2av", "files": [ { "bin": { "type": "dir", "files": [ { "duf": { "type": "link-file", "source": ".run" } }, { ".run": { "type": "file" } } ] } } ] } } ] } } ] } } ] } } ] } } ] } } ] } }, { "nfs": { "type": "dir", "files": [ { "data": { "type": "dir", "files": [ { "project": { "type": "dir", "files": [] } } ] } }, { "vsa": { "type": "dir", "files": [ { "project": { "type": "dir", "files": [ { "xa": { "type": "dir", "files": [ { "vuvua": { "type": "dir", "files": [ { "su2av": { "type": "dir", "files": [] } } ] } } ] } } ] } } ] } } ] } } ] } }';
my $obj = decode_json($j);