(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgname)
          op: assign_op.Equal
          rhs: {(perl-test-warn)}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:_pkgreal)
          op: assign_op.Equal
          rhs: {(Test-Warn)}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgver)
          op: assign_op.Equal
          rhs: {(0.32)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgrel)
          op: assign_op.Equal
          rhs: {(0)}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pkgdesc)
          op: assign_op.Equal
          rhs: {(DQ ('Perl extension to test methods for warnings'))}
          spids: [21]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:url)
          op: assign_op.Equal
          rhs: {(DQ ('http://search.cpan.org/dist/Test-Warn/'))}
          spids: [26]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:arch)
          op: assign_op.Equal
          rhs: {(DQ (noarch))}
          spids: [31]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:license)
          op: assign_op.Equal
          rhs: {(DQ ('GPL PerlArtistic'))}
          spids: [36]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cpandepends)
          op: assign_op.Equal
          rhs: {(DQ (perl-sub-uplevel))}
          spids: [41]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cpanmakedepends)
          op: assign_op.Equal
          rhs: {(DQ ('   '))}
          spids: [46]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:depends)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$cpandepends'))}
          spids: [51]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:makedepends)
          op: assign_op.Equal
          rhs: {(DQ ('perl-dev ') ($ Id.VSub_DollarName '$cpanmakedepends'))}
          spids: [56]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:subpackages)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$pkgname') (-doc))}
          spids: [62]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:source)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('http://search.cpan.org/CPAN/authors/id/B/BI/BIGJ/') 
                ($ Id.VSub_DollarName '$_pkgreal') (-) ($ Id.VSub_DollarName '$pkgver') (.tar.gz)
              )
            }
          spids: [68]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:builddir)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName '$srcdir') (/) ($ Id.VSub_DollarName '$_pkgreal') (-) 
                ($ Id.VSub_DollarName '$pkgver')
              )
            }
          spids: [77]
        )
      ]
    )
    (command.ShFunction
      name: prepare
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(default_prepare)})
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:98)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {(export)} 
              {(Id.Lit_VarLike 'CFLAGS=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:114)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(perl)} {(-MConfig)} {(-E)} 
                          {(SQ (Token id:Id.Lit_Chars val:'say $Config{ccflags}' span_id:122))}
                        )
                      ]
                    )
                )
              }
            )
            (command.Simple
              words: [{(perl)} {(Makefile.PL)} {(Id.Lit_VarLike 'INSTALLDIRS=') (vendor)}]
              more_env: [(env_pair name:PERL_MM_USE_DEFAULT val:{(1)} spids:[127])]
            )
          ]
        )
    )
    (command.ShFunction
      name: build
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (C {(export)} 
              {(Id.Lit_VarLike 'CFLAGS=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:157)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(perl)} {(-MConfig)} {(-E)} 
                          {(SQ (Token id:Id.Lit_Chars val:'say $Config{ccflags}' span_id:165))}
                        )
                      ]
                    )
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [(C {(make)}) (C {(make)} {(test)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: package
      body: 
        (command.BraceGroup
          children: [
            (C {(cd)} {(DQ ($ Id.VSub_DollarName '$builddir'))})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(make)} {(Id.Lit_VarLike 'DESTDIR=') (DQ ($ Id.VSub_DollarName '$pkgdir'))} 
                  {(install)}
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:206)
                  arg_word: {(1)}
                )
              ]
            )
            (C {(find)} {(DQ ($ Id.VSub_DollarName '$pkgdir'))} 
              {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\(' span_id:217))} {(-name)} {(perllocal.pod)} {(-o)} {(-name)} {(.packlist)} 
              {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:229))} {(-delete)}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:md5sums)
          op: assign_op.Equal
          rhs: {(DQ ('3210a070680ea24437ebfd2be26bbfcd  Test-Warn-0.32.tar.gz'))}
          spids: [236]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha256sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'2fc516e71f9ef453be22a4619d91eb3f78df414a57dfa0fd745d3bff50bf73d2  Test-Warn-0.32.tar.gz'
                )
              )
            }
          spids: [241]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sha512sums)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'a14d6a87cfa19d54a3055b3c94143b95788ed2a30b2813d952255891a84165f0baf8b9cad167c8d5c87870220aaeeedcfe48db73246966be6aea41ad26779e6a  Test-Warn-0.32.tar.gz'
                )
              )
            }
          spids: [246]
        )
      ]
    )
  ]
)