(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:pkgname spids:[9])
          op: Equal
          rhs: {(perl-json-xs)}
          spids: [9]
        )
      ]
      spids: [9]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:_pkgreal spids:[12])
          op: Equal
          rhs: {(JSON-XS)}
          spids: [12]
        )
      ]
      spids: [12]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:pkgver spids:[15])
          op: Equal
          rhs: {(3.03)}
          spids: [15]
        )
      ]
      spids: [15]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:pkgrel spids:[18])
          op: Equal
          rhs: {(0)}
          spids: [18]
        )
      ]
      spids: [18]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:pkgdesc spids:[21])
          op: Equal
          rhs: {(DQ ('Perl extension to converts data structures to JSON and vice versa'))}
          spids: [21]
        )
      ]
      spids: [21]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:url spids:[26])
          op: Equal
          rhs: {(DQ ('http://search.cpan.org/dist/JSON-XS/'))}
          spids: [26]
        )
      ]
      spids: [26]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:arch spids:[31])
          op: Equal
          rhs: {(DQ (all))}
          spids: [31]
        )
      ]
      spids: [31]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:license spids:[36])
          op: Equal
          rhs: {(DQ ('GPL PerlArtistic'))}
          spids: [36]
        )
      ]
      spids: [36]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:cpandepends spids:[41])
          op: Equal
          rhs: {(DQ ('perl-types-serialiser perl-common-sense perl-canary-stability'))}
          spids: [41]
        )
      ]
      spids: [41]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:cpanmakedepends spids:[46])
          op: Equal
          rhs: {(DQ ('   '))}
          spids: [46]
        )
      ]
      spids: [46]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:depends spids:[51])
          op: Equal
          rhs: {(DQ ($ VSub_DollarName '$cpandepends'))}
          spids: [51]
        )
      ]
      spids: [51]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:makedepends spids:[56])
          op: Equal
          rhs: {(DQ ('perl-dev ') ($ VSub_DollarName '$cpanmakedepends'))}
          spids: [56]
        )
      ]
      spids: [56]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:subpackages spids:[62])
          op: Equal
          rhs: {(DQ ($ VSub_DollarName '$pkgname') (-doc))}
          spids: [62]
        )
      ]
      spids: [62]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:source spids:[68])
          op: Equal
          rhs: 
            {
              (DQ ('http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/') 
                ($ VSub_DollarName '$_pkgreal') (-) ($ VSub_DollarName '$pkgver') (.tar.gz)
              )
            }
          spids: [68]
        )
      ]
      spids: [68]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:builddir spids:[78])
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_DollarName '$srcdir') (/) ($ VSub_DollarName '$_pkgreal') (-) 
                ($ VSub_DollarName '$pkgver')
              )
            }
          spids: [78]
        )
      ]
      spids: [78]
    )
    (command.FuncDef
      name: prepare
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_DollarName '$builddir'))})
            (C {(export)} 
              {(Lit_VarLike 'CFLAGS=') 
                (word_part.CommandSubPart
                  command_list: 
                    (command.CommandList
                      children: [(C {(perl)} {(-MConfig)} {(-E)} {(SQ <'say $Config{ccflags}'>)})]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [105 115]
                )
              }
            )
            (command.SimpleCommand
              words: [{(perl)} {(Makefile.PL)} {(Lit_VarLike 'INSTALLDIRS=') (vendor)}]
              more_env: [(env_pair name:PERL_MM_USE_DEFAULT val:{(1)} spids:[118])]
            )
          ]
          spids: [92]
        )
      spids: [88 91]
    )
    (command.FuncDef
      name: build
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_DollarName '$builddir'))})
            (C {(export)} 
              {(Lit_VarLike 'CFLAGS=') 
                (word_part.CommandSubPart
                  command_list: 
                    (command.CommandList
                      children: [(C {(perl)} {(-MConfig)} {(-E)} {(SQ <'say $Config{ccflags}'>)})]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [148 158]
                )
              }
            )
            (command.AndOr ops:[Op_DAmp] children:[(C {(make)}) (C {(make)} {(test)})])
          ]
          spids: [135]
        )
      spids: [131 134]
    )
    (command.FuncDef
      name: package
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (C {(make)} {(Lit_VarLike 'DESTDIR=') (DQ ($ VSub_DollarName '$pkgdir'))} {(install)})
                (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (C {(find)} {(DQ ($ VSub_DollarName '$pkgdir'))} 
              {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\('>)} {(-name)} {(perllocal.pod)} {(-o)} {(-name)} {(.packlist)} 
              {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\)'>)} {(-delete)}
            )
          ]
          spids: [176]
        )
      spids: [172 175]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:sha512sums spids:[227])
          op: Equal
          rhs: 
            {
              (DQ 
                (
'757dc3bff01860d348e3bbb0c68ddef6a80e25f74b812b1969e57f4284724fc92828014c059a91c232ba100b5c96d41257272900db48395b484d6eeb540c5db8  JSON-XS-3.03.tar.gz'
                )
              )
            }
          spids: [227]
        )
      ]
      spids: [227]
    )
  ]
)