---
docs:
- depends:
    Perl::Module: 0
    Perl::Options: 0
  description: ''
  export: ''
  export_ok: $KeyGen
  export_tags:
    all: $KeyGen
  methods:
    private: []
    public:
    - access: public
      description: "\nparameters:\n\n\n  $key_length           Total length for the
        key.  This is the string length\n                        when C<-char_width>
        is 1 (normal behavior).  The\n                        default is 12.\n    \n
        \ \\@charset             Characters (sequences) to use for the key.  The\n
        \                       default is [0 .. 9].\n    \n  $charset              Characters
        to use for the key in regex style, for \n                        example the
        default would be '0-9'.  Can denote any\n                        characters
        where ord($char) < 126.\n\noptions:\n\n\n  -char_width => $n     Width of
        each item in the character set.  Used if you \n                        would
        like to use double-wide sequences such as \n                        ['aa',
        'bb', 'cc'].  The default is 1.\n\nRelationships between source digits and
        key length.\n\n  T = Total key length (C<$key_length>)\n  n = Number of random
        source digits\n  \n     T = n + n/2\n    2T = 3n\n  2T/3 = n\n\nPossible values
        for T (C<$key_length>):\n\n  T =  3  6  9 12 15 18 21 24 27 30 33 36 39 42
        45 48\n      -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --\n  n =  2  4
        \ 6  8 10 12 14 16 18 20 22 24 26 28 30 32\n"
      name: new
      summary: Create a new key generator
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Algorithm/KeyGen.pm
        lineno: 56
        num: 1
        package: Algorithm::KeyGen
        result: ''
        summary: Create a new KeyGen
        test: "  use Algorithm::KeyGen; \n  Algorithm::KeyGen->new(9, 'MyCharset');"
      usage: ''
    - access: public
      description: ''
      name: rand
      summary: The random-character generation function
      tests: []
      usage: ''
    - access: public
      description: ''
      name: create
      summary: Generate a new key
      tests: []
      usage: ''
    - access: public
      description: '

        Returns the key if it is valid, otherwise undef.

'
      name: validate
      summary: Validate a key
      tests: []
      usage: ''
    - access: public
      description: ''
      name: hash
      summary: The hashing function
      tests: []
      usage: ''
  name: Algorithm::KeyGen
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Algorithm/KeyGen.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Algorithm/KeyGen.pm
    lineno: 177
    num: 2
    package: Algorithm::KeyGen
    result: ''
    summary: ''
    test: "  use Algorithm::KeyGen qw($KeyGen);\n  for (1 .. 100) {\n    die unless
      $KeyGen->validate($KeyGen->create());\n  }"
  version:
  - '1'
  - 0
  - 0
- depends:
    Exporter: 0
    Term::ANSIColor: 0
  description: "\nExtends C<printf> and C<sprintf> with coloring.  Where normally
    one would\nwrite:\n\n  %s\n\none can write:\n\n  %_bs\n\nand the value will be
    printed in blue.  The trigger is the underscore\ncharacter, and the color-code
    is the following character (See `Color Codes`).\n\n  %_bs\n   ^^^\n   |||___ 's'
    means this will become %s when given to sprintf\n   ||____ 'b' meaning blue (see
    below)\n   |_____ '_' triggers this color parsing\n\nThis is not limited to the
    string conversion as only the trigger and color-code\nare pruned before C<sprintf>
    is called.\n\n  Normal (No Color)     Enhanced (using 'b' for blue)\n  ---------------------
    -----------------------------\n  %-10s                 %_b-10s\n  %02d                  %_b02d\n
    \ %u                    %_bu\n\nBold and reverse color sequences are included.
    \ Bold colors use the\nthe upper-case letter of the color code.\n\n  %_^s        just
    bold  (color code is '^')\n\nColor Codes\n\n  '^'=>BOLD,      '*'=>REVERSE,\n
    \ 'r'=>RED,       'R'=>RED.BOLD,\n  'g'=>GREEN,     'G'=>GREEN.BOLD,\n  'b'=>BLUE,
    \     'B'=>BLUE.BOLD,\n  'y'=>YELLOW,    'Y'=>YELLOW.BOLD,\n  'm'=>MAGENTA,   'M'=>MAGENTA.BOLD,\n
    \ 'c'=>CYAN,      'C'=>CYAN.BOLD,\n\n"
  export: ''
  export_ok: c_length, c_sprintf, c_printf, c_stripf
  export_tags:
    all: c_length, c_sprintf, c_printf, c_stripf
  methods:
    private: []
    public: []
  name: App::Console::Color
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/Console/Color.pm
  seealso: ''
  summary: ''
  synopsis: "\n  use App::Console::Color qw(:all);\n  c_printf(\"%_bs %_rs\\n\", 'Blue',
    'Red');\n    \n  my $str = c_sprintf(\"%_bs %_rs\\n\", 'Blue', 'Red');\n  my $len
    = c_length($str); # because length(str) counts the ctrl chars\n\n"
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    App::Console::Color: 0
    Data::Hub::Util: 0
    Error: 0
    Error::Programatic: 0
    Error::Simple: 0
    Perl::Module: 0
  description: "\nThis package faciltates writing command-line scripts.  The base
    class method \nC<exec> looks to your package for the C<%USAGE> hash to display
    command usage \nand glean the required syntax.  A command is simply a method which
    exists in \nyour package.\n\nIf the above example were placed in an executable
    file name 'mycmd.pl', then:\n\n  $ ./mycmd.pl\n    \n  usage:\n    mycmd.pl -help
    [command]\n    mycmd.pl <command> [arguments] [options]\n  commands:\n    test
    \      My test command\n    \n  $ ./mycmd.pl -help test\n    \n  usage:\n    mycmd.pl
    test <param> [options]\n  where:\n    <param>    This is a required parameter\n
    \ options:\n    -quiet     Suppress errors and warnings\n    -foo       This is
    an option\n\nNotice the global option C<-quiet> which affects the base methods\n\n
    \ print\n  printf\n  err_print\n  err_printf\n  fail\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: exec
      summary: Invoke the subroutine in the derived class, or display help
      tests: []
      usage: ''
    - access: public
      description: ''
      name: warn
      summary: Print to STDERR (unless -quiet)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: print
      summary: Print to STDOUT (unless -quiet)
      tests: []
      usage: ''
    - access: public
      description: 'C<$spec> may contain color conversions (See L<App::Console::Color>)

'
      name: printf
      summary: Print formatted output to STDOUT (unless -quiet)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: err_print
      summary: Print to STDERR (unless -quiet)
      tests: []
      usage: ''
    - access: public
      description: 'C<$spec> may contain color conversions (See L<App::Console::Color>)

'
      name: err_printf
      summary: Print formatted output to STDERR (unless -quiet)
      tests: []
      usage: ''
    - access: public
      description: 'When C<@messages> are provided (and not C<-quiet>), C<die> is
        called and help

        verbiage is appened. Otherwise C<exit> is called with a value of C<1>.

'
      name: fail
      summary: Exit the program with an optional message
      tests: []
      usage: ''
    - access: public
      description: 'The C<@messages> are not written to STDERR if C<-quiet> is enabled.

'
      name: quit
      summary: Exit the program (not trappable) with an optional message
      tests: []
      usage: ''
  name: App::Console::CommandScript
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/Console/CommandScript.pm
  seealso: ''
  summary: ''
  synopsis: "\n  #!/usr/bin/perl -w\n    \n  package Local::App;\n  use strict;\n
    \ use Data::OrderedHash;\n  use base 'App::Console::CommandScript';\n    \n  our
    %USAGE = ();\n    \n  sub new {\n    my $self = shift->SUPER::new();\n    $self;\n
    \ }\n    \n  $USAGE{'test'} = {\n    summary => 'My test command',\n    params
    => Data::OrderedHash->new(\n      '<param>' => 'This is a required parameter',\n
    \     '-foo' => 'This is an option',\n    ),\n  };\n    \n  sub test {\n    my
    $self = shift;\n    my $opts = my_opts(\\@_);\n    my $param = shift;\n    my
    $foo = $opts->{foo} || 'unset';\n    $self->printf(\"You passed in '%s' and -foo
    is '%s'\\n\", $param, $foo)\n  };\n    \n  1;\n    \n  package main;\n  Local::App->new()->exec(@ARGV);\n\n"
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Digest::SHA1: 0
    Exporter: 0
    Perl::Module: 0
  description: "\n  Prompt to STDERR and read from STDIN.\n\n"
  export: ''
  export_ok: prompt, prompt_for_password, prompt_Yn, prompt_yN, prompt_yn
  export_tags:
    all: prompt, prompt_for_password, prompt_Yn, prompt_yN, prompt_yn
  methods:
    private:
    - access: private
      description: "\nC<$type>:\n\n  'yN'    Default is no (default)\n  'Yn'    Default
        is yes\n  'yn'    Require input\n"
      name: _prompt_yn
      summary: Prompt for a yes/no response
      tests: []
      usage: ''
    public:
    - access: public
      description: "\noptions:\n\n\n  -nocolon  Do not put a colon (:) at the end
        of the prompt\n  -noecho   Do not echo typed characters\n  -noempty  Reprompt
        if no input is received\n"
      name: prompt
      summary: Prompt for input
      tests: []
      usage: ''
    - access: public
      description: "\noptions:\n\n\n  -noempty  Require non-empty passwords\n  -confirm
        \ Require confirmation\n  -sha1hex  Digest the password before returning\n"
      name: prompt_for_password
      summary: Prompt for input
      tests: []
      usage: ''
    - access: public
      description: ''
      name: prompt_yn
      summary: Prompt for a yes/no response (require an answer)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: prompt_Yn
      summary: Prompt for a yes/no response (default is Yes)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: prompt_yN
      summary: Prompt for a yes/no response (default is No)
      tests: []
      usage: ''
  name: App::Console::Prompts
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/Console/Prompts.pm
  seealso: ''
  summary: ''
  synopsis: "\n  use App::Console::Prompts qw(:all);\n  my $color = prompt('What's
    your favorite color?');\n  my $pw = prompt_for_password();\n\n"
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    App::TMS::Common: 0
    App::TMS::Debug: 0
    Cwd: 0
    Data::Comparison: 0
    Data::Format::Hash: 0
    Data::Hub: 0
    Data::Hub::FileSystem::Node: 0
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Error: 0
    Error::Programatic: 0
    Error::Simple: 0
    File::Spec: 0
    List::Util: 0
    Parse::Template::Standard: 0
    Perl::Module: 0
  description: '

'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: _ping_repository
      summary: Test that the repository is reachable
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _validate_connection
      summary: Ensure the repository is valid
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _validate_persistent_connection
      summary: Ensure proper connection to the repository
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _get_instance
      summary: Return an entry from the instances db
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _get_instances
      summary: Return an instance entry for each target address
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _addr_to_key
      summary: Return the instance db key for a given address
      tests: []
      usage: ''
    - access: private
      description: "\nwhere:\n\n\n  $instance = {\n    template => $template_addr,\n
        \   target => $target_addr || undef,\n    vars => \\%vars,\n    use => \\@paths,\n
        \ }\n\nIf C<$target_addr> is defined, the result will be written there.  Otherwise
        \nthe result will be printed to STDOUT.\n"
      name: _compile
      summary: Compile according to the provided instance
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _set_statuses
      summary: Query and set status for each instance
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _get_status
      summary: ''
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: new
      summary: Construct a new instance
      tests: []
      usage: ''
    - access: public
      description: "options:\n\n  -force                        # Connect even when
        already connected\n"
      name: connect
      summary: Connect to a repository
      tests: []
      usage: ''
    - access: public
      description: ''
      name: persist
      summary: Create a persistent connection to the repository
      tests: []
      usage: ''
    - access: public
      description: ''
      name: status
      summary: Print status for each instance
      tests: []
      usage: ''
    - access: public
      description: ''
      name: update
      summary: Update the targets for all instances of modified templates
      tests: []
      usage: ''
    - access: public
      description: "\nwhere:\n\n\n  @vars                     # Key/value pairs formatted
        as: key=value\n\noptions:\n\n\n  -force => 1               # Generate even
        if target exists\n  -use => \\@files           # Colon-separated list of data
        files\n\nIf C<$filename> is omitted, output is written to STDOUT and the entry
        is not\nrecorded in the instance database.\n"
      name: compile
      summary: Compile a template
      tests: []
      usage: ''
  name: App::TMS::Client
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/TMS/Client.pm
  seealso: ''
  summary: 'Template Management System

'
  synopsis: '

'
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::OrderedHash: 0
    Exporter: 0
    Perl::Module: 0
  description: ''
  export: $TMS_DIR, $TMS_SETTINGS, $TMS_INSTANCE_DB, $STATUS_OK, $STATUS_CLIENT_DIR,
    $STATUS_CLIENT_DIR_MISSING, $STATUS_TARGET_MODIFIED, $STATUS_TARGET_MISSING, $STATUS_TEMPLATE_MODIFIED,
    $STATUS_TEMPLATE_MISSING, $TEXT_STATUS, $TEXT_STATUS_ITEM
  export_ok: $TMS_DIR, $TMS_SETTINGS, $TMS_INSTANCE_DB, $STATUS_OK, $STATUS_CLIENT_DIR,
    $STATUS_CLIENT_DIR_MISSING, $STATUS_TARGET_MODIFIED, $STATUS_TARGET_MISSING, $STATUS_TEMPLATE_MODIFIED,
    $STATUS_TEMPLATE_MISSING, $TEXT_STATUS, $TEXT_STATUS_ITEM
  export_tags:
    all: $TMS_DIR, $TMS_SETTINGS, $TMS_INSTANCE_DB, $STATUS_OK, $STATUS_CLIENT_DIR,
      $STATUS_CLIENT_DIR_MISSING, $STATUS_TARGET_MODIFIED, $STATUS_TARGET_MISSING,
      $STATUS_TEMPLATE_MODIFIED, $STATUS_TEMPLATE_MISSING, $TEXT_STATUS, $TEXT_STATUS_ITEM
  methods:
    private: []
    public: []
  name: App::TMS::Common
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/TMS/Common.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Programatic: 0
    Parse::Template::Debug::Listener: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: App::TMS::Debug
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/TMS/Debug.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    App::TMS::Client: 0
    App::TMS::Common: 0
    Data::Hub: 0
    Error::Logical: 0
    Error::Programatic: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: _get_clients
      summary: Get the clients array from the settings file
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _foreach_client
      summary: Execute a command for each client
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: new
      summary: Constructor
      tests: []
      usage: ''
  name: App::TMS::Repository
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/App/TMS/Repository.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Address: 0
    Data::Hub::Util: 0
    Error::Programatic: 0
    Exporter: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: diff, merge
  export_tags:
    all: diff, merge
  methods:
    private: []
    public:
    - access: public
      description: "  diff \\%left, \\%right\n  diff \\@left, \\@right\nSample output:\n\n
        \ [\n    ['+', 'a',   'Cartman'],          # Item a has been added and the
        value is 'Cartman'\n    ['-', 'b'],                       # Item b has been
        removed\n    ['>', 'c/1', 'Cartman'],          # The value of array c at index
        1 is now 'Cartman'\n    ['#', 'e/g', ['a', 'b', 'c'],     # The order of keys
        in hash e/g changed to a, b, c\n  ]\n"
      name: diff
      summary: Recursively diff two similar structures, returning addr/val pairs
      tests: []
      usage: ''
    - access: public
      description: "\nwhere\n\n  $dest is usually the $left passed to L<diff>\n  $diff
        is the result of L<diff>\n\nThe special C<next> value\n\n  If the new value
        is '<next>',\n  and the $dest value is numeric or not set,\n  then the new
        value becomes the old value + 1.\n\nThis way a counter can be incremented
        even when another process incremented\nthe same counter between the time our
        process read the file and writes it\nback out.\n"
      name: merge
      summary: Update the target structure according to the diff
      tests: []
      usage: ''
  name: Data::Comparison
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Comparison.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Comparison::Diff
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Comparison.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Container: 0
    Data::Hub::Util: 0
    Error::Programatic: 0
    Error::Simple: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: new
      summary: Create a new CompositeHash
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
        lineno: 15
        num: 3
        package: Data::CompositeHash
        result: ''
        summary: ''
        test: '  use Data::CompositeHash;'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
        lineno: 16
        num: 4
        package: Data::CompositeHash
        result: ''
        summary: no default hash provided
        test: '  my $ch = Data::CompositeHash->new();'
      usage: ''
    - access: public
      description: ''
      name: shift
      summary: Shift a hash from the composite stack
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
        lineno: 31
        num: 5
        package: Data::CompositeHash
        result: ''
        summary: ''
        test: "  my $h2 = {a=>'a2'};\n  my $ch = Data::CompositeHash->new($h2);\n
          \ $ch->shift;\n  $ch->{a};"
      usage: ''
    - access: public
      description: ''
      name: unshift
      summary: Unshift hash(es) on to the composite stack
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
        lineno: 49
        num: 6
        package: Data::CompositeHash
        result: a1
        summary: ''
        test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2'};\n  my $ch = Data::CompositeHash->new($h2);\n
          \ $ch->unshift($h1);\n  $ch->{a};"
      usage: ''
    - access: public
      description: ''
      name: push
      summary: Push hash(es) on to the composite stack
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
        lineno: 68
        num: 7
        package: Data::CompositeHash
        result: a2
        summary: ''
        test: "  my $h2 = {a=>'a2'};\n  my $h3 = {a=>'a3'};\n  my $ch = Data::CompositeHash->new($h2);\n
          \ $ch->push($h3);\n  $ch->{a};"
      usage: ''
    - access: public
      description: ''
      name: pop
      summary: Pop a hash off the composite stack
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
        lineno: 87
        num: 8
        package: Data::CompositeHash
        result: ''
        summary: ''
        test: "  my $h2 = {a=>'a2'};\n  my $ch = Data::CompositeHash->new($h2);\n
          \ $ch->pop;\n  $ch->{a};"
      usage: ''
  name: Data::CompositeHash
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 121
    num: 9
    package: Data::CompositeHash
    result: ''
    summary: ''
    test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
      b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
      \ $ch->push($h3);\n  # We now have a composite stack with prescedence: $h1,
      $h2, $h3\n  # Where $h2 is the default hash\n  $ch->{a} = 'AA';\n  $ch->{b}
      = 'BB';\n  $ch->{c} = 'CC';\n  $ch->{d} = 'DD';\n  die unless $h1->{a} eq 'AA';\n
      \ die unless $h2->{b} eq 'BB';\n  die unless $h3->{c} eq 'CC';\n  die unless
      $h2->{d} eq 'DD'; # set on default hash b/c 'd' did not exist"
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 157
    num: 10
    package: Data::CompositeHash
    result: ''
    summary: ''
    test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
      b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
      \ $ch->push($h3);\n  # We now have a composite stack with prescedence: $h1,
      $h2, $h3\n  # Where $h2 is the default hash\n  die unless $ch->{a} eq 'a1';\n
      \ die unless $ch->{b} eq 'b2';\n  die unless $ch->{c} eq 'c3';\n  die unless
      ref($ch->{'/'});"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 192
    num: 11
    package: Data::CompositeHash
    result: a1b2c3
    summary: ''
    test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
      b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
      \ $ch->push($h3);\n  join '', sort values %$ch;"
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 213
    num: 12
    package: Data::CompositeHash
    result: ''
    summary: ''
    test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
      b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
      \ $ch->push($h3);\n  die unless exists $$ch{a};\n  die unless exists $$ch{b};\n
      \ die unless exists $$ch{c};\n  die if exists $$ch{d};"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 234
    num: 13
    package: Data::CompositeHash
    result: a2b3
    summary: ''
    test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
      b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
      \ $ch->push($h3);\n  delete $ch->{a};\n  delete $ch->{b};\n  delete $ch->{c};\n
      \ join '', sort values %$ch;"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 255
    num: 14
    package: Data::CompositeHash
    result: a2b2
    summary: ''
    test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
      b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
      \ $ch->push($h3);\n  %$ch = ();\n  join '', sort values %$ch;"
  - comparator: 'true'
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 273
    num: 15
    package: Data::CompositeHash
    result: ''
    summary: ''
    test: "  my $h2 = {a=>'a2', b=>'b2'};\n  my $ch = Data::CompositeHash->new($h2);\n
      \ scalar(%$ch);"
  - comparator: 'false'
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 278
    num: 16
    package: Data::CompositeHash
    result: ''
    summary: ''
    test: "  my $h2 = {a=>'a2', b=>'b2'};\n  my $ch = Data::CompositeHash->new($h2);\n
      \ $ch->pop;\n  scalar(%$ch);"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
    lineno: 289
    num: 17
    package: Data::CompositeHash
    result: 'argon

      banana

      cherry

      dark brown

      --

      aluminium

      apple

      --

      cantelope

      cyan

      --

      edible fruit'
    summary: ''
    test: "  use Data::CompositeHash;\n  my $h1 = {\n    'a' => 'argon',\n  };\n  my
      $h2 = {\n    'a' => 'apple',\n    'b' => 'banana',\n    'c' => 'cherry',\n  };\n
      \ my $h3 = {\n    'c' => 'cyan',\n    'd' => 'dark brown',\n  };\n  my $result
      = '';\n  # Create a composite hash, using $h2 as the default hash\n  my $ch
      = Data::CompositeHash->new($h2);\n  # Add $h1 as a hash which will overried
      values in $h2\n  $ch->unshift($h1);\n  # Add $h3 as a hash with the least prescedence\n
      \ $ch->push($h3);\n  # Fetch some values\n  $result .= $ch->{a} . \"\\n\";\n
      \ $result .= $ch->{b} . \"\\n\";\n  $result .= $ch->{c} . \"\\n\";\n  $result
      .= $ch->{d} . \"\\n\";\n  # Set an ambiguous value\n  $result .= \"--\\n\";\n
      \ $ch->{a} = 'aluminium';\n  $result .= $h1->{a} . \"\\n\"; # contains new value\n
      \ $result .= $h2->{a} . \"\\n\"; # not touched\n  # Set an ambiguous value\n
      \ $result .= \"--\\n\";\n  $ch->{c} = 'cantelope';\n  $result .= $h2->{c} .
      \"\\n\"; # contains new value\n  $result .= $h3->{c} . \"\\n\"; # not touched\n
      \ # Setting a value which is not defined in any hash sets\n  # it on the defalut
      hash\n  $result .= \"--\\n\";\n  $ch->{e} = 'edible fruit';\n  $result .= $h2->{e};"
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Hub::Util: 0
    Exporter: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: csv_parse
  export_tags:
    all: csv_parse
  methods:
    private:
    - access: private
      description: ''
      name: _next
      summary: ''
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _split
      summary: ''
      tests: []
      usage: ''
    public:
    - access: public
      description: '

        Local::Parse::CSV->new(''export.csv'');

        Local::Parse::CSV->new(''export.tsv'', delimeter => "\t");

'
      name: new
      summary: Local::Parse::CSV
      tests: []
      usage: ''
    - access: public
      description: ''
      name: parse_header
      summary: ''
      tests: []
      usage: ''
    - access: public
      description: ''
      name: has_next
      summary: ''
      tests: []
      usage: ''
    - access: public
      description: ''
      name: next
      summary: ''
      tests: []
      usage: ''
  name: Data::Format::CSV
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/CSV.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Hub::Address: 0
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Error::Programatic: 0
    Exporter: 0
    Perl::Module: 0
  description: '

'
  export: ''
  export_ok: HF_VERSION_MAJOR, HF_VERSION_MINOR, HF_VERSION_STR, hf_parse, hf_format
  export_tags:
    all: HF_VERSION_MAJOR, HF_VERSION_MINOR, HF_VERSION_STR, hf_parse, hf_format
  methods:
    private:
    - access: private
      description: ''
      name: _trace
      summary: Debug output while parsing
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _make_crown
      summary: Return the hash-format file crown
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _format
      summary: Implementation of format
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _escape
      summary: Esacape patterns which would be interpred as control characters
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _unescape
      summary: Remove protective backslashes
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _get_indent
      summary: Get the indent for formatting nested sructures
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _get_hint
      summary: Context information for error messages
      tests: []
      usage: ''
    public:
    - access: public
      description: "options:\n\n  -as_array=1         # Treat text as an array list
        (and return an array ref)\n  -hint=hint          # Usually a filename, used
        in debug/error output\n"
      name: parse
      summary: Parse text into perl data structures
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
        lineno: 73
        num: 18
        package: Data::Format::Hash
        result: ''
        summary: ''
        test: '  use Data::Format::Hash qw(hf_parse);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
        lineno: 74
        num: 19
        package: Data::Format::Hash
        result: biz
        summary: Parse a simple nested collection
        test: "  my $d = q(\n  baz => biz\n  foo => %{\n  bar => @{\n  tender\n  stool\n
          \ }\n  }\n  );\n  my $h = hf_parse(\\$d);\n  $$h{'baz'};"
      usage: ''
    - access: public
      description: "\noptions:\n\n\n  -as_ref => 1        Return a reference (default
        0)\n  -with_crown => 1    Prepend output with \"# HashFile M.m\" (where M.m
        is version)\n"
      name: format
      summary: Format nested data structure as string
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
        lineno: 315
        num: 20
        package: Data::Format::Hash
        result: ''
        summary: ''
        test: '  use Data::Format::Hash qw(hf_format);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
        lineno: 316
        num: 21
        package: Data::Format::Hash
        result: "foo => %{\n  bar => @{\n    tender\n    stool\n  }\n}"
        summary: Format a simple nested collection
        test: "  my $d = {foo=>{bar=>['tender','stool']}};\n  hf_format($d)"
      usage: ''
  name: Data::Format::Hash
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
  seealso: ''
  summary: 'Parse and format perl data structures

'
  synopsis: '

'
  tests: []
  version:
  - '2'
  - '1'
  - 0
- depends:
    Error::Programatic: 0
    Exporter: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: hexstr_parse, hexstr_format
  export_tags:
    all: hexstr_parse, hexstr_format
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: hexstr_format
      summary: Create hexed string
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/HexString.pm
        lineno: 15
        num: 22
        package: Data::Format::HexString
        result: Dogs_0x20__0x28_Waters_0x2c__0x20_Gilmour_0x29__0x20_17_0x3a_06
        summary: ''
        test: "  use Data::Format::HexString qw(:all);\n  hexstr_format( 'Dogs (Waters,
          Gilmour) 17:06' );"
      usage: ''
    - access: public
      description: ''
      name: hexstr_parse
      summary: Parse hexed string
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/HexString.pm
        lineno: 29
        num: 23
        package: Data::Format::HexString
        result: Dogs (Waters, Gilmour) 17:06
        summary: ''
        test: '  hexstr_parse(''Dogs_0x20__0x28_Waters_0x2c__0x20_Gilmour_0x29__0x20_17_0x3a_06'');'
      usage: ''
  name: Data::Format::HexString
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/HexString.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Error::Programatic: 0
    Perl::Module: 0
    Scalar::Util: 0
  description: ''
  export: ''
  export_ok: js_format, js_format_key, js_format_value, js_format_string, js_format_lsn
  export_tags:
    all: js_format, js_format_key, js_format_value, js_format_string, js_format_lsn
  methods:
    private: []
    public: []
  name: Data::Format::JavaScript
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/JavaScript.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Format::Nml::Node: 0
  description: '

    Format ordinary text as HTML.  Ordinary meaning there are no mark-up specific

    tags.  The challenge is mostly keeping track of the indentation level of ordered

    and unordered lists.


'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: $PAT_HEAD
      summary: Heading
      tests: []
      usage: ''
    - access: public
      description: ''
      name: $PAT_ITEM
      summary: List Item
      tests: []
      usage: ''
  name: Data::Format::Nml::Document
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Nml/Document.pm
  seealso: ''
  summary: 'No mark-up language

'
  synopsis: "\n  use Data::Format::Nml::Document;\n  my $doc = Data::Format::Nml::Document->new($txt);\n
    \ print $doc->to_string;\n\nIf C<$txt> is:\n\n  My::Module v1\n  =============\n
    \   \n  INSTALLATION\n  ------------\n    \n  To install this module type the
    following:\n    \n    perl Makefile.PL\n    make\n    make test\n    make install\n
    \   \n  DEPENDENCIES\n  ------------\n    \n    * Perl 5.8.0\n    * Scalar::Util\n\nthan
    the above will print:\n\n  <a name=\"My::Module v1\n  \"></a><h1>My::Module v1\n
    \ </h1><a name=\"INSTALLATION\n  \"></a><h2>INSTALLATION\n  </h2>To install this
    module type the following:\n  <pre><blockquote>perl Makefile.PL\n  make\n  make
    test\n  make install\n  </blockquote></pre><a name=\"DEPENDENCIES\n  \"></a><h2>DEPENDENCIES\n
    \ </h2><ul><li>Perl 5.8.0\n  </li><li>Scalar::Util\n  </li></ul>\n\n"
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Format::Nml::Node
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Nml/Node.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Format::Nml::Document: 0
    Error::Logical: 0
    Exporter: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: nml_parse, nml_format
  export_tags:
    all: nml_parse, nml_format
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: nml_parse
      summary: Parse a string into Perl data structures
      tests: []
      usage: ''
    - access: public
      description: ''
      name: nml_format
      summary: Parse Perl data structures into a string
      tests: []
      usage: ''
  name: Data::Format::Nml
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Nml.pm
  seealso: ''
  summary: 'Parse/format routines for NML (No mark-up language)

'
  synopsis: "\n  use Data::Format::Nml qw(nml_parse);\n  my $hash = nml_parse($text);\n\nSee
    Data::Format::Nml::Document;\n\n"
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::OrderedHash: 0
    Encode: 0
    Error::Logical: 0
    Exporter: 0
    MIME::Base64: 0
    Perl::Module: 0
  description: "\nImplemented for the need to preserve hash order.\n\nA delimited
    string consisting of encoded values.  The syntax is designed for \nefficient parsing
    and construction.\n\nReserved characters:\n\n  % @ $ { }\n  ! # ^ & * ~ - + =
    | \\ ? ; : , . < > ( ) [ ] ' ` \"\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: '%New'
      summary: Constructor methods for data types
      tests: []
      usage: ''
    - access: public
      description: ''
      name: '%Encodings'
      summary: Supported encodings
      tests: []
      usage: ''
    - access: public
      description: ''
      name: new
      summary: Constructor
      tests: []
      usage: ''
    - access: public
      description: ''
      name: set_encoding
      summary: Set the content encoding
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_encoding
      summary: Return the content encoding
      tests: []
      usage: ''
    - access: public
      description: ''
      name: unescape
      summary: Unescape and decode values
      tests: []
      usage: ''
    - access: public
      description: 'Expects a perl string (which will be UTF-8 encoded)

'
      name: escape
      summary: Escape and encode values
      tests: []
      usage: ''
    - access: public
      description: "options:\n\n  '%' => sub {...} # HASH constructor (return a hash
        ref)\n  '@' => sub {...} # ARRAY constructor (return an array ref)\n  '$'
        => sub {...} # SCALAR constructor (return a scalar, not a scalar ref)\n"
      name: parse
      summary: Parse a string in to Perl data structures
      tests: []
      usage: ''
    - access: public
      description: ''
      name: format
      summary: Create a transfer string from Perl data structures
      tests: []
      usage: ''
  name: Data::Format::XFR
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/XFR.pm
  seealso: ''
  summary: 'Data Transfer Format (XFR)

'
  synopsis: '

'
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/XFR.pm
    lineno: 205
    num: 24
    package: Data::Format::XFR
    result: ''
    summary: ''
    test: "  use Data::Format::XFR;\n  use Data::OrderedHash;\n  my $h = Data::OrderedHash->new(\n
      \   a => ['alpha', 'beta', 'copper'],\n    b => {\n      one => 1,\n    },\n
      \   c => 'charlie',\n  );\n  my $xfr = Data::Format::XFR->new('base64');\n  my
      $known = '%{YQ==@{${YWxwaGE=}${YmV0YQ==}${Y29wcGVy}}Yg==%{b25l${MQ==}}Yw==${Y2hhcmxpZQ==}}';\n
      \ my $str = $xfr->format($h);\n  die \"format error:\\nstr: $str\\n!= : $known\"
      unless $str eq $known;\n  my $h2 = $xfr->parse($str);\n  die 'parse error' unless
      $h2->{a}[1] eq $h->{a}[1];"
  version:
  - 0
  - 0
  - 0
- depends:
    Error::Programatic: 0
    Exporter: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: xml_parse, xml_format, xml_strip
  export_tags:
    all: xml_parse, xml_format, xml_strip
  methods:
    private: []
    public:
    - access: public
      description: '

        my $xml_string = xml_format(\%data);

        my $xml_string = xml_format(\%data, -indent => ''  ''); # Use two-space indent

        my $xml_string = xml_format(\%data, -level => 1); # Initial indent level

        my $xml_string = xml_format(\%data, -end_tag_required => 1); # No inline tags

'
      name: xml_format
      summary: Format the given data [Hash] as XML.
      tests: []
      usage: ''
  name: Data::Format::Xml
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Xml.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Error::Programatic: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: new
      summary: Initialize a parser appropriate for XML
      tests: []
      usage: ''
    - access: public
      description: ''
      name: compile_text
      summary: Return root hash object instead of output string
      tests: []
      usage: ''
  name: Data::Format::Xml::Parser
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Xml.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Format::Hash: 0
    Data::OrderedHash: 0
    Perl::Module: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: FETCH
      summary: Return the handler which processes all tags
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: handler
      summary: Process an XML tag
      tests: []
      usage: ''
  name: Data::Format::Xml::Directives
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Xml.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::OrderedHash: 0
    Perl::Module: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Format::Xml::Node
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Xml.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Format::Xml::Stripper
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Xml.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Format::Xml::Bambi
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Xml.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Error::Programatic: 0
    Parse::StringTokenizer: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::Address
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Address.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Address.pm
    lineno: 33
    num: 25
    package: Data::Hub::Address
    result: ''
    summary: ''
    test: "    \n  use strict;\n  use Data::Hub::Address;\n  my $a = Data::Hub::Address->new(\"/b/c/d\");\n
      \ die $a->to_string unless '/b/c/d' eq $a->to_string;\n  die $a->first unless
      '' eq $a->first;\n  die $a->last unless 'd' eq $a->last;\n  $a->pop;\n  die
      unless '/b/c' eq $a->to_string;\n  $a->push(\"D\");\n  die unless '/b/c/D' eq
      $a->to_string;\n  $a->shift;\n  die unless 'b/c/D' eq $a->to_string;\n  $a->unshift('A');\n
      \ die unless 'A/b/c/D' eq $a->to_string;"
  version:
  - 0
  - 0
  - 0
- depends:
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: curry
  export_tags:
    all: curry
  methods:
    private: []
    public: []
  name: Data::Hub::Container
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Container.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::ExpandedSubset: 0
    Data::Hub::Query: 0
    Data::Hub::Subset: 0
    Data::Hub::Util: 0
    Error::Programatic: 0
    Error::Simple: 0
    Perl::Comparison: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: TODO
      summary: The items should be curried.
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: append
      summary: Append an item on to the container
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
        lineno: 208
        num: 26
        package: Data::Hub::Courier
        result: abc
        summary: Append to an array
        test: "  my $h = {g=>[qw(a b)]};\n  Data::Hub::Courier::append($h, '/g', 'c');\n
          \ join('', @{$$h{g}});"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
        lineno: 213
        num: 27
        package: Data::Hub::Courier
        result: abc
        summary: Append to a hash
        test: "  my $h = {g=>Data::OrderedHash->new(a => 1, b => 2)};\n  Data::Hub::Courier::append($h,
          '/g', c => 3);\n  join('', keys %{$$h{g}});"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
        lineno: 218
        num: 28
        package: Data::Hub::Courier
        result: abc
        summary: Append to a scalar
        test: "  my $h = {g=>str_ref('ab')};\n  Data::Hub::Courier::append($h, '/g',
          'c');\n  ${$$h{g}};"
      usage: ''
    - access: public
      description: ''
      name: prepend
      summary: Prepend an item on to the container
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
        lineno: 255
        num: 29
        package: Data::Hub::Courier
        result: abc
        summary: Prepend to an array
        test: "  my $h = {g=>[qw(b c)]};\n  Data::Hub::Courier::prepend($h, '/g',
          'a');\n  join('', @{$$h{g}});"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
        lineno: 260
        num: 30
        package: Data::Hub::Courier
        result: abc
        summary: Prepend to a hash
        test: "  my $h = {g=>Data::OrderedHash->new(b => 2, c => 3)};\n  Data::Hub::Courier::prepend($h,
          '/g', a => 1);\n  join('', keys %{$$h{g}});"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
        lineno: 265
        num: 31
        package: Data::Hub::Courier
        result: abc
        summary: Prepend to a scalar
        test: "  my $h = {g=>str_ref('bc')};\n  Data::Hub::Courier::prepend($h, '/g',
          'a');\n  ${$$h{g}};"
      usage: ''
  name: Data::Hub::Courier
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  seealso: ''
  summary: 'Courier services for hierarchical data addresses

'
  synopsis: '

'
  tests:
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
    lineno: 385
    num: 32
    package: Data::Hub::Courier
    result: Hello World!
    summary: ''
    test: "  use Data::Hub::Courier;\n  my $h = {\n    A => {\n      I => [\n        'Hello'\n
      \     ],\n    },\n  };\n  Data::Hub::Courier::set($h, '/A/I/1', 'World!');\n
      \ my $a = Data::Hub::Courier::get($h, '/A/I');\n  join ' ', @$a;"
  version:
  - 0
  - '1'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::ExpandedSubset
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/ExpandedSubset.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    List::Util: 0
    Perl::Class: 0
    Perl::Module: 0
  description: '

'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: 'Returns C<$mtime>

        Pass C<0> for C<$mtime> to track attempts to access missing files.

'
      name: set_value
      summary: Set the disk mtime value for a particular path.
      tests: []
      usage: ''
  name: Data::Hub::FileSystem::AccessLog
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/AccessLog.pm
  seealso: ''
  summary: 'Log of access to file-system resources which supports listeners

'
  synopsis: '

'
  tests: []
  version:
  - 0
  - '2'
  - 0
- depends:
    Data::Hub::Util: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::BinaryFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/BinaryFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Compress::Zlib: 0
    Data::Hub::Util: 0
    Parse::Padding: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::CompressZlibFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/CompressZlibFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::FileSystem::Node: 0
    Data::Hub::Util: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::Directory
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/Directory.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::File
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/File.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::File::Content
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/File.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Comparison: 0
    Data::Format::Hash: 0
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Encode: 0
    Perl::Module: 0
    Try::Tiny: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::HashFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/HashFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Hub::Util: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::ImageFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/ImageFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Image::ExifTool: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::ImageFile::ExifInfo
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/ImageFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    JSON::XS: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::JSONFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/JSONFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Container: 0
    Data::Hub::FileSystem::AccessLog: 0
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Error::Logical: 0
    Error::Programatic: 0
    Fcntl: 0
    Perl::Module: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: TIEHASH
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: "Scan for changes. This allows cached instances to refresh themselves
        upon \nmember access.\n"
      name: FIRSTKEY
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: 'Scan for changes.

'
      name: FETCH
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: 'Scan for changes.

'
      name: EXISTS
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: 'Scan for changes and update modified time.

'
      name: STORE
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: 'Scan for changes and update modified time.

'
      name: DELETE
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: 'Scan for changes and return node contents.

'
      name: SCALAR
      summary: See C<perltie>
      tests: []
      usage: ''
    - access: private
      description: 'Base method.

'
      name: __read_from_disk
      summary: Read instance data from persistent storage
      tests: []
      usage: ''
    - access: private
      description: 'Abstract base method.

'
      name: __write_to_disk
      summary: Write instance data to persistent storage
      tests: []
      usage: ''
    - access: private
      description: '

        When C<$key> is provided, this resource is then instantiated if necessary.

        This allows L<Data::Hub::FileSystem::Directory> to maintain a key/value pair
        of

        filename/undef when reading the directory and delay instantiating (and hence

        recursively reading) the value until it is called upon.

'
      name: __scan
      summary: Read from disk if necessary
      tests: []
      usage: ''
    public:
    - access: public
      description: "\ncriteria:\n\n\n  -type=d         # Directory\n  -type=f         #
        Regular file\n  -type=T         # Text file\n  -type=B         # Binary file\n
        \ -type=!         # Does not exist\n  -path=$regex    # Path (with filename)
        matches $regex\n  -crown=$regex   # File's crown matches $regex\n\n"
      name: Add_Handler
      summary: Add a filesystem node handler
      tests: []
      usage: ''
    - access: public
      description: ''
      name: new
      summary: Consructor
      tests: []
      usage: ''
    - access: public
      description: 'Base method.

'
      name: get_path
      summary: Return the full physical path to this node.
      tests: []
      usage: ''
    - access: public
      description: 'Base method.

'
      name: get_addr
      summary: Return the full physical path to this node.
      tests: []
      usage: ''
    - access: public
      description: 'Base method.

'
      name: get_name
      summary: Return the file name of this node.
      tests: []
      usage: ''
    - access: public
      description: 'Base method.

'
      name: get_type
      summary: Return the Hub type signature for this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: set_data
      summary: Set the data segment of this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_data
      summary: Return the data segment of this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: set_content
      summary: Set the content segment of this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_content
      summary: Return the content segment of this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: set_raw_content
      summary: Set the literal contents
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_raw_content
      summary: Return the literal contents
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_stat
      summary: Get the stat record for this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_mtime
      summary: Modified time of persistent storage
      tests: []
      usage: ''
    - access: public
      description: ''
      name: save
      summary: Save changes made to this node
      tests: []
      usage: ''
    - access: public
      description: ''
      name: expire
      summary: Detect changes made in persistent storage on next access
      tests: []
      usage: ''
    - access: public
      description: ''
      name: refresh
      summary: Detect changes made in persistent storage
      tests: []
      usage: ''
    - access: public
      description: ''
      name: reload
      summary: Force this node to reload itself
      tests: []
      usage: ''
    - access: public
      description: ''
      name: is_valid
      summary: Are we still a valid handler for this path?
      tests: []
      usage: ''
  name: Data::Hub::FileSystem::Node
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/Node.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Carp: 0
    Fcntl: 0
    IO::File: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::Node::Crown
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/Node.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Error::Programatic: 0
    Perl::Module: 0
  description: "\nPerlModule now inserts an @INC hook which looks for your file in
    Hub context.\nMeaning, you may now:\n\n  require '/web/scripts/util.pm';\n  require
    '../shared.pm';\n  require './share.pm';\n\nfrom within your module.  Note that
    this hook is inserted at beginning of @INC\nand will be run first.  Modules which
    exist in the same directory as the calling\nmodule must be prefixed with './',
    as in:\n\n  require './share.pm'; # correct\n  require 'share.pm';   # not found\n\nWhen
    calling routines, if the module has defined an ACCESS function, it will be\ncalled
    (once per checkpoint) before calling a routine.\n\n  sub ACCESS {\n    return
    1;   # return true (access allowed) or false (access denied)\n  }\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: __content
      summary: Get/Set file contents
      tests: []
      usage: ''
    - access: private
      description: "\nNote, do not eval, i.e., require, the contents until a sub is
        invoked. This \nis a security consideration, as eval is obviously dangerous.
        The intention \nis that one can access the contents of the file using this
        FileSystem  object,\nwithout its contents being eval'd.\n\nThe downside is
        that we will return a valide CODE reference no matter what\nkey is being fetched.
        This could be handled with some /^sub\\s+(\\w+)/ type\nmagic in __parse_content.\n"
      name: FETCH
      summary: Get subroutine
      tests: []
      usage: ''
    - access: private
      description: ''
      name: STORE
      summary: Store subroutine value, fatal error!
      tests: []
      usage: ''
    - access: private
      description: 'The package name is determined from its absolute path

'
      name: __use_content
      summary: Eval file contents (use as a module)
      tests: []
      usage: ''
    - access: private
      description: '

        Apache2::Reload considers every value in %INC to be a file path.  By default

        the hook is placed in %INC in place of the file name (see %INC in perlvar).

        Apache2::Reload will issue a warning when trying to reload the array, so we

        set the %INC entry ourselves.

'
      name: __require_hook
      summary: Evaluate paths in current Hub scope
      tests: []
      usage: ''
    - access: private
      description: ''
      name: __scan
      summary: Read from disk if necessary
      tests: []
      usage: ''
    - access: private
      description: "\nThe perl-module should begin with (on its own line!):\n\n  #
        PerlModule\n\nwhich will be replaced with:\n\n\n  package _home_user_test_module_pm;\n\npresuming
        the file is located at /home/user/test/module.pm\n\nNote:\n\n\n  .-------------------
        \ No whitespace is allowed before the pound-sign (#)\n  v\n  # PerlModule\n
        \  ^\n   '------------------  Whitespace between the pound-sign and first
        word is \n                        optional.\n\nIf the content defines a package,
        e.g., C<package Local;> no modification is\nperformed.\n\nIf the content does
        not include the C<# PerlModule> crown, it will be \ninserted.\n\nDEPRICATED\n\nIf
        the first line is:\n\n\n  package PACKAGE;\n\nit will be replaced with the
        dynamic package name.\n"
      name: __parse_content
      summary: Generate dynamic package name
      tests: []
      usage: ''
    - access: private
      description: ''
      name: __sig_warn
      summary: 'Replace ''(eval ##)'' with file name'
      tests: []
      usage: ''
    - access: private
      description: ''
      name: __sig_die
      summary: 'Replace ''(eval ##)'' with file name'
      tests: []
      usage: ''
    - access: private
      description: 'Taken from ModPerl::Util::unload_package_pp

'
      name: __unload
      summary: Unload a previously loaded package from this file path
      tests: []
      usage: ''
    public: []
  name: Data::Hub::FileSystem::PerlModule
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/PerlModule.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Comparison: 0
    Data::Format::Hash: 0
    Data::Hub::Util: 0
    Parse::Padding: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::TextFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/TextFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Format::Xml: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::XMLHash
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/XMLHash.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Perl::Module: 0
    YAML::XS: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::FileSystem::YAMLFile
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/FileSystem/YAMLFile.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Courier: 0
    Data::Hub::Subset: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Comparison: 0
    Perl::Module: 0
  description: '

'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: "\nThe general form is:\n\n\n  {?[!]key(opr):val}\n\nThe leading
        C<!> negation symbol, when present, inverts the result of the\ncomparson.\n\nHowever
        both C<opr> and C<key> are optional.\n\n  {?(opr):val}    # Without the key,
        all values are compared and a subset of\n                  # matches is returned.\n
        \   \n  {?key:val}      # Without the operator, a single value (first match)
        is \n                  # returned instead of a subset.\n    \n  {?:val}         #
        Without the key or operator, a single value (first match)\n                  #
        is returned. All values are compared.\n    \n  {?key}          # With only
        the key, the result is items where the value\n                  # at that
        key is logically true.\n\nWhen the C<opr> is omitted, the 'eq' operator is
        used in comparisons.\n\nIf C<key> contains C<( ) :> those character must be
        escaped with a backslash.\n\nIf C<val> contains C<}> it must be escaped with
        a backslash.\n\nThe operators available for C<opr> are those implemented by
        L<Perl::Comparison>:\n\n  Perl Operators (see L<perlop>)\n    \n    eq  =~
        \ ==\n    ne  !~  !=\n    lt      <\n    le      <=\n    gt      >\n    ge
        \     >=\n    \n  Extended operators\n    \n    eqic    # Same as 'eq' however
        is case insensitive\n    neic    # Same as 'ne' however is case insensitive\n
        \   mod     # Modulus, e.g., {?age(mod):30} is true for ages of 30,60,90,...\n\nThe
        key may contain spaces:\n\n\n  /users/{?first name(=~):Ryan} # List all users
        with a first name of 'Ryan'\n\nRandom examples:\n\n\n  {?(=~):[A-Z]}             #
        set of all values whose key has an upper-case letter\n  {?id:1234}                #
        the first value whose id is 1234\n  {?id(eq):1234}            # set of all
        values whose id is 1234\n  {?id(==):1234}            # set of all values whose
        id is 1234 (numerically)\n  {?first name(eq):Ryan}    # set of all users whose
        'first name' is Ryan\n  {?group(=~):aeiou}        # set of all values whose
        group contains a vowel\n  {?!disabled}              # set of all values which
        are not 'disabled'\n\n\nTODO - Query before expansion\n\n  What we want is
        to say; /data.hf/**/{?schema(eq):product}\n  and have the subset expansion
        stop at the point where an item with \n  a key of 'schema' is equal to 'product'.
        This however is code which\n  slurps backward $c slashes from an expanded
        key:\n\n\n  my $c = defined $key ? $key =~ tr'/'' : 0;\n  my $i = rindex $_[0],
        '/';\n  for (my $j = 0; $i > -1 && $j < $c; $j++) {\n    $i = rindex $_[0],
        '/', $i - 1;\n  }\n  my $k = $i > -1 ? substr $_[0], $i + 1 : $_[0];\n\n"
      name: _query_compare
      summary: Query a structure for values which match the given criteria
      tests: []
      usage: ''
    public: []
  name: Data::Hub::Query
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  seealso: ''
  summary: 'Implementation of queries for L<Data::Hub::Courier>

'
  synopsis: ''
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 410
    num: 33
    package: Data::Hub::Query
    result: ''
    summary: ''
    test: "  # This test case simply sets up the test data and subroutine for running\n
      \ # subsequent test queries.\n  use Data::Hub::Util qw(:all);\n  use Data::Format::Hash
      qw(hf_format hf_parse);\n  use Data::OrderedHash;\n  my $ttt_data = curry(hf_parse('\n
      \   array => @{\n      a\n      b\n      c\n      ab\n      abc\n    }\n    hash
      => %{\n      a => Alpha\n      b => Beta\n      c => Charlie\n    }\n    array_of_hashes
      => @{\n      %{\n        name => a\n        text => Alpha\n      }\n      %{\n
      \       name => b\n        text => Beta\n      }\n      %{\n        name =>
      c\n        text => Charlie\n      }\n    }\n    hash_of_hashes => %{\n      a
      => %{\n        text => Alpha\n        num => 3\n      }\n      b => %{\n        text
      => Beta\n        num => 2\n      }\n      c => %{\n        text => Charlie\n
      \       num => 1\n      }\n    }\n  '));\n  # The test data is curried to provide
      the get method of Data::Hub::Courier\n  sub ttt_query {\n    my $q = shift;\n
      \   my $r = $ttt_data->get($q);\n    return unless defined $r;\n    my $ref
      = ref($r);\n    $ref ? hf_format({$ref => $r}) : $r;\n  }"
  - comparator: defined
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 481
    num: 34
    package: Data::Hub::Query
    result: ''
    summary: ''
    test: "  # Use an invalid index\n  ttt_query('array/{?:fail}');"
  - comparator: defined
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 486
    num: 35
    package: Data::Hub::Query
    result: ''
    summary: ''
    test: "  # Get the value whose value is ''\n  ttt_query('array/{?:}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 491
    num: 36
    package: Data::Hub::Query
    result: a
    summary: ''
    test: "  # Get the value whose key is eq 0\n  ttt_query('array/{?:0}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 500
    num: 37
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  0 => a\n}"
    summary: ''
    test: "  # Get the value whose key is == 0\n  ttt_query('array/{?(==):0}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 511
    num: 38
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  2 => c\n  3 => ab\n  4 => abc\n}"
    summary: ''
    test: "  # Get all items whose key is >= 2\n  ttt_query('array/{?(>=):2}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 524
    num: 39
    package: Data::Hub::Query
    result: a
    summary: ''
    test: "  # Get the value whose value is 'a'\n  ttt_query('array/{?*:a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 533
    num: 40
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  0 => a\n}"
    summary: ''
    test: "  # Get all items whose value is eq 'a'\n  ttt_query('array/{?*(eq):a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 544
    num: 41
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  0 => a\n  3 => ab\n  4 => abc\n}"
    summary: ''
    test: "  # Get all items whose value is =~ /a/\n  ttt_query('array/{?*(=~):a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 561
    num: 42
    package: Data::Hub::Query
    result: Alpha
    summary: ''
    test: "  # Get the value whose key is eq 'a'\n  ttt_query('hash/{?:a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 570
    num: 43
    package: Data::Hub::Query
    result: Alpha
    summary: ''
    test: "  # Get the value whose value is eq 'Alpha'\n  ttt_query('hash/{?*:Alpha}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 579
    num: 44
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  a => Alpha\n}"
    summary: ''
    test: "  # Get all items whose value is eq 'Alpha'\n  ttt_query('hash/{?*(eq):Alpha}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 590
    num: 45
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  a => Alpha\n  b => Beta\n}"
    summary: ''
    test: "  # Get all items whose value is =~ /a$/\n  ttt_query('hash/{?*(=~):a$}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 606
    num: 46
    package: Data::Hub::Query
    result: "Data::OrderedHash => %{\n  name => a\n  text => Alpha\n}"
    summary: ''
    test: "  # Get the value whose key is eq 0\n  ttt_query('array_of_hashes/{?:0}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 618
    num: 47
    package: Data::Hub::Query
    result: "Data::OrderedHash => %{\n  name => a\n  text => Alpha\n}"
    summary: ''
    test: "  # Get the value whose name is eq 'a'\n  ttt_query('array_of_hashes/{?name:a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 630
    num: 48
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  0 => %{\n    name => a\n    text => Alpha\n
      \ }\n}"
    summary: ''
    test: "  # Get all items whose name is eq 'a'\n  ttt_query('array_of_hashes/{?name(eq):a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 644
    num: 49
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  0 => %{\n    name => a\n    text => Alpha\n
      \ }\n  1 => %{\n    name => b\n    text => Beta\n  }\n}"
    summary: ''
    test: "  # Get all items whose name is =~ /a|b/\n  ttt_query('array_of_hashes/{?name(=~):a|b}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 666
    num: 50
    package: Data::Hub::Query
    result: "Data::OrderedHash => %{\n  text => Alpha\n  num => 3\n}"
    summary: ''
    test: "  # Get the value whose key is eq 'a'\n  ttt_query('hash_of_hashes/{?:a}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 678
    num: 51
    package: Data::Hub::Query
    result: "Data::OrderedHash => %{\n  text => Alpha\n  num => 3\n}"
    summary: ''
    test: "  # Get the value whose text is eq 'Alpha'\n  ttt_query('hash_of_hashes/{?text:Alpha}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 690
    num: 52
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  a => %{\n    text => Alpha\n    num => 3\n
      \ }\n}"
    summary: ''
    test: "  # Get all items whose text is eq 'Alpha'\n  ttt_query('hash_of_hashes/{?text(eq):Alpha}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 704
    num: 53
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  a => %{\n    text => Alpha\n    num => 3\n
      \ }\n  b => %{\n    text => Beta\n    num => 2\n  }\n}"
    summary: ''
    test: "  # Get all items whose num is > 1\n  ttt_query('hash_of_hashes/{?num(>):1}');"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 726
    num: 54
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  a => %{\n    text => Alpha\n    num => 3\n
      \ }\n  c => %{\n    text => Charlie\n    num => 1\n  }\n}"
    summary: ''
    test: '  ttt_query(''hash_of_hashes/*|{?(ne):b}'');'
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 743
    num: 55
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  b => %{\n    text => Beta\n    num => 2\n
      \ }\n  c => %{\n    text => Charlie\n    num => 1\n  }\n}"
    summary: ''
    test: '  ttt_query(''hash_of_hashes/*|{?text(=~):B|C}'');'
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 762
    num: 56
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  b => %{\n    text => Beta\n    num => 2\n
      \ }\n}"
    summary: ''
    test: '  ttt_query(''hash_of_hashes/*|{?(=~):[ab]}|{?text(=~):B|C}'');'
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
    lineno: 775
    num: 57
    package: Data::Hub::Query
    result: "Data::Hub::Subset => %{\n  b => %{\n    text => Beta\n    num => 2\n
      \ }\n}"
    summary: ''
    test: '  ttt_query(''hash_of_hashes/{?(=~):[ab]}|{?text(=~):B|C}'');'
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Container: 0
    Data::Hub::Courier: 0
    Data::Hub::ExpandedSubset: 0
    Data::Hub::Query: 0
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::Hub::Subset
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Subset.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Hub::Address: 0
    Encode: 0
    Error::Programatic: 0
    Error::Simple: 0
    Exporter: 0
    Fcntl: 0
    File::Copy: 0
    IO::Dir: 0
    IO::File: 0
    Parse::StringTokenizer: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: RE_ABSTRACT_KEY, RE_ABSTRACT_ADDR, $VALUE_ALL, $VALUE_ALL_REC, $PATTERN_QUERY,
    $PATTERN_QUERY_SUBKEY, $PATTERN_QUERY_VALUE, $PATTERN_QUERY_RANGE, $PATTERN_QUERY_KEY,
    %TYPEOF_ALIASES, FS, is_abstract_key, is_abstract_addr, curry, typeof, addr_shift,
    addr_pop, addr_normalize, addr_parent, addr_name, addr_basename, addr_split, addr_join,
    addr_ext, addr_base, path_shift, path_pop, path_push, path_normalize, path_parent,
    path_name, path_split, path_join, path_ext, path_is_absolute, path_basename, fs_handle,
    file_read, file_read_binary, file_read_crown, file_create, file_write, file_write_binary,
    file_copy, file_move, file_remove, dir_read, dir_create, dir_copy, dir_copy_contents,
    dir_is_system, dir_move, dir_remove, dir_remove_contents
  export_tags:
    all: RE_ABSTRACT_KEY, RE_ABSTRACT_ADDR, $VALUE_ALL, $VALUE_ALL_REC, $PATTERN_QUERY,
      $PATTERN_QUERY_SUBKEY, $PATTERN_QUERY_VALUE, $PATTERN_QUERY_RANGE, $PATTERN_QUERY_KEY,
      %TYPEOF_ALIASES, FS, is_abstract_key, is_abstract_addr, curry, typeof, addr_shift,
      addr_pop, addr_normalize, addr_parent, addr_name, addr_basename, addr_split,
      addr_join, addr_ext, addr_base, path_shift, path_pop, path_push, path_normalize,
      path_parent, path_name, path_split, path_join, path_ext, path_is_absolute, path_basename,
      fs_handle, file_read, file_read_binary, file_read_crown, file_create, file_write,
      file_write_binary, file_copy, file_move, file_remove, dir_read, dir_create,
      dir_copy, dir_copy_contents, dir_is_system, dir_move, dir_remove, dir_remove_contents
  methods:
    private:
    - access: private
      description: ''
      name: FS
      summary: Return the package name for the given file-system class
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 137
        num: 60
        package: Data::Hub::Util
        result: Data::Hub::FileSystem::Node
        summary: ''
        test: '  FS(''Node'');'
      usage: ''
    - access: private
      description: ''
      name: _normalize
      summary: Implementation method for L<addr_normalize> and L<path_normalize>
      tests: []
      usage: ''
    public:
    - access: public
      description: '

        TODO The regex RE_ABSTRACT_KEY uses an error-prone search for | and * (these

        are allowed in hashfile key names.

'
      name: is_abstract_key
      summary: Is the key abstract (produces a subset)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: is_abstract_addr
      summary: Does the address contain an abstract key
      tests: []
      usage: ''
    - access: public
      description: ''
      name: curry
      summary: Add the courier magic to the provided reference
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 125
        num: 59
        package: Data::Hub::Util
        result: c
        summary: ''
        test: '  curry({a=>{b=>''c''}})->get(''/a/b'');'
      usage: ''
    - access: public
      description: ''
      name: typeof
      summary: Return the logical type for the given file-system or data structure
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 148
        num: 61
        package: Data::Hub::Util
        result: data-hash
        summary: ''
        test: '  typeof(''foo.bar'', {});'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 149
        num: 62
        package: Data::Hub::Util
        result: data-array
        summary: ''
        test: '  typeof(''/with/path/foo.bar'', []);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 150
        num: 63
        package: Data::Hub::Util
        result: data-scalar-bar
        summary: ''
        test: '  typeof(''foo.bar'', ''baz'');'
      usage: ''
    - access: public
      description: ''
      name: addr_shift
      summary: Return the next token and trim the address
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 228
        num: 64
        package: Data::Hub::Util
        result: one:two:{/i/am/three}:four
        summary: ''
        test: "  my $addr = '/one/two/{/i/am/three}/four';\n  join(':', addr_shift($addr),
          addr_shift($addr), addr_shift($addr),\n  addr_shift($addr)); "
      usage: ''
    - access: public
      description: ''
      name: addr_pop
      summary: Return the last token and trim the address
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 241
        num: 65
        package: Data::Hub::Util
        result: two,/one
        summary: ''
        test: "  my $addr = '/one/two';\n  my $last = addr_pop($addr);\n  \"$last,$addr\""
      usage: ''
    - access: public
      description: 'See also L</_normalize>

'
      name: addr_normalize
      summary: 'Normalize form of the given address '
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 255
        num: 66
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  addr_normalize(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 256
        num: 67
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_normalize(''/a/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 257
        num: 68
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_normalize(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 258
        num: 69
        package: Data::Hub::Util
        result: /b
        summary: ''
        test: '  addr_normalize(''/a/../b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 259
        num: 70
        package: Data::Hub::Util
        result: /b
        summary: ''
        test: '  addr_normalize(''/a/../../b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 260
        num: 71
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_normalize(''/a/.../b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 261
        num: 72
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_normalize(''/a/.../'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 262
        num: 73
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_normalize(''/a/...'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 263
        num: 74
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_normalize(''/a/.../..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 264
        num: 75
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  addr_normalize(''/a/../...'');'
      usage: ''
    - access: public
      description: ''
      name: addr_parent
      summary: Return the parent of the given address
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 275
        num: 76
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_parent();'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 276
        num: 77
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_parent('''');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 277
        num: 78
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  addr_parent(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 278
        num: 79
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  addr_parent(''/a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 279
        num: 80
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  addr_parent(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 280
        num: 81
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  addr_parent(''a/b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 281
        num: 82
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  addr_parent(''a/b.c'');'
      usage: ''
    - access: public
      description: ''
      name: addr_name
      summary: Return the name part of an address
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 294
        num: 83
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_name('''');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 295
        num: 84
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_name(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 296
        num: 85
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  addr_name(''/a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 297
        num: 86
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  addr_name(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 298
        num: 87
        package: Data::Hub::Util
        result: b
        summary: ''
        test: '  addr_name(''a/b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 299
        num: 88
        package: Data::Hub::Util
        result: b.c
        summary: ''
        test: '  addr_name(''a/b.c'');'
      usage: ''
    - access: public
      description: ''
      name: addr_split
      summary: Return each part of an address
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 311
        num: 89
        package: Data::Hub::Util
        result: '0'
        summary: ''
        test: '  scalar(addr_split(''''));'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 312
        num: 90
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  join '' '', addr_split(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 313
        num: 91
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  join '' '', addr_split(''/a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 314
        num: 92
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  join '' '', addr_split(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 315
        num: 93
        package: Data::Hub::Util
        result: a b
        summary: ''
        test: '  join '' '', addr_split(''a/b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 316
        num: 94
        package: Data::Hub::Util
        result: a b.c
        summary: ''
        test: '  join '' '', addr_split(''a/b.c'');'
      usage: ''
    - access: public
      description: 'See also L</_normalize>

'
      name: addr_join
      summary: 'Normalize form of the given address '
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 330
        num: 95
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  addr_join(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 331
        num: 96
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_join(''/a'', ''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 332
        num: 97
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_join(''/a/'', ''b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 333
        num: 98
        package: Data::Hub::Util
        result: /b
        summary: ''
        test: '  addr_join(''/a/..'', ''/b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 334
        num: 99
        package: Data::Hub::Util
        result: /b
        summary: ''
        test: '  addr_join(''/a/../'', ''../b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 335
        num: 100
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_join(''/a/.../'', ''b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 336
        num: 101
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_join(''/a/'', ''.../'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 337
        num: 102
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  addr_join(''/a/'', ''...'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 338
        num: 103
        package: Data::Hub::Util
        result: /a/b
        summary: ''
        test: '  addr_join(''/a/'', ''b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 339
        num: 104
        package: Data::Hub::Util
        result: /a/b
        summary: ''
        test: '  addr_join(''/a/'', ''b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 340
        num: 105
        package: Data::Hub::Util
        result: /a/b
        summary: ''
        test: '  addr_join(''/a'', ''/b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 341
        num: 106
        package: Data::Hub::Util
        result: /a/b
        summary: ''
        test: '  addr_join(''/a'', ''b'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 342
        num: 107
        package: Data::Hub::Util
        result: /a/b/c
        summary: ''
        test: '  addr_join(''/a'', ''b'', ''c'');'
      usage: ''
    - access: public
      description: ''
      name: addr_ext
      summary: Return the extension part of the given address
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 353
        num: 108
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_ext(undef);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 354
        num: 109
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  addr_ext(''foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 355
        num: 110
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  addr_ext(''/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 356
        num: 111
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  addr_ext(''./foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 357
        num: 112
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  addr_ext(''../foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 358
        num: 113
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  addr_ext(''/foo/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 359
        num: 114
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  addr_ext(''/foo.bar.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 360
        num: 115
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_ext(''/foo/bar.'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 361
        num: 116
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_ext(''/foo/bar'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 362
        num: 117
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_ext(''.metadata'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 363
        num: 118
        package: Data::Hub::Util
        result: bak
        summary: ''
        test: '  addr_ext(''.metadata.bak'');'
      usage: ''
    - access: public
      description: ''
      name: addr_basename
      summary: Return the name at the given address without its extension
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 377
        num: 119
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_basename(undef);'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 378
        num: 120
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_basename(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 379
        num: 121
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  addr_basename(''foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 380
        num: 122
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  addr_basename(''foo.txt/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 381
        num: 123
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  addr_basename(''/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 382
        num: 124
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  addr_basename(''./foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 383
        num: 125
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  addr_basename(''../foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 384
        num: 126
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  addr_basename(''/foo/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 385
        num: 127
        package: Data::Hub::Util
        result: foo.bar
        summary: ''
        test: '  addr_basename(''/foo.bar.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 386
        num: 128
        package: Data::Hub::Util
        result: bar
        summary: ''
        test: '  addr_basename(''/foo/bar.'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 387
        num: 129
        package: Data::Hub::Util
        result: bar
        summary: ''
        test: '  addr_basename(''/foo/bar'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 388
        num: 130
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  addr_basename(''.metadata'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 389
        num: 131
        package: Data::Hub::Util
        result: .metadata
        summary: ''
        test: '  addr_basename(''.metadata.bak'');'
      usage: ''
    - access: public
      description: ''
      name: addr_base
      summary: Return the base (known part) of the given address
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 404
        num: 132
        package: Data::Hub::Util
        result: /a/b
        summary: ''
        test: '  addr_base(''/a/b/{d}'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 405
        num: 133
        package: Data::Hub::Util
        result: /a/b/d
        summary: ''
        test: '  addr_base(''/a/b/d'');'
      usage: ''
    - access: public
      description: ''
      name: path_shift
      summary: Return the next token and trim the path
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 429
        num: 134
        package: Data::Hub::Util
        result: one:two:..:four
        summary: ''
        test: "  my $path = '/one/two/../four';\n  join(':', path_shift($path), path_shift($path),
          path_shift($path),\n  path_shift($path)); "
      usage: ''
    - access: public
      description: ''
      name: path_pop
      summary: Return the last token and trim the path
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 442
        num: 135
        package: Data::Hub::Util
        result: two,/one
        summary: ''
        test: "  my $path = '/one/two';\n  my $last = path_pop($path);\n  \"$last,$path\""
      usage: ''
    - access: public
      description: ''
      name: path_push
      summary: Push a token on to the path
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 455
        num: 136
        package: Data::Hub::Util
        result: /one/two/three
        summary: ''
        test: "  my $path = '/one/two';\n  my $count = path_push($path, 'three');\n
          \ \"$path\""
      usage: ''
    - access: public
      description: ''
      name: path_split
      summary: Return each part of a path
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 467
        num: 137
        package: Data::Hub::Util
        result: '0'
        summary: ''
        test: '  path_split('''');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 468
        num: 138
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  join '' '', path_split(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 469
        num: 139
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  join '' '', path_split(''/a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 470
        num: 140
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  join '' '', path_split(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 471
        num: 141
        package: Data::Hub::Util
        result: a b
        summary: ''
        test: '  join '' '', path_split(''a/b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 472
        num: 142
        package: Data::Hub::Util
        result: a b.c
        summary: ''
        test: '  join '' '', path_split(''a/b.c'');'
      usage: ''
    - access: public
      description: ''
      name: path_basename
      summary: Return the name part of the given path without its extension
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 489
        num: 143
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_basename(undef);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 490
        num: 144
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  path_basename(''foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 491
        num: 145
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  path_basename(''/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 492
        num: 146
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  path_basename(''./foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 493
        num: 147
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  path_basename(''../foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 494
        num: 148
        package: Data::Hub::Util
        result: foo
        summary: ''
        test: '  path_basename(''/foo/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 495
        num: 149
        package: Data::Hub::Util
        result: foo.bar
        summary: ''
        test: '  path_basename(''/foo.bar.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 496
        num: 150
        package: Data::Hub::Util
        result: bar
        summary: ''
        test: '  path_basename(''/foo/bar.'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 497
        num: 151
        package: Data::Hub::Util
        result: bar
        summary: ''
        test: '  path_basename(''/foo/bar'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 498
        num: 152
        package: Data::Hub::Util
        result: .bashrc
        summary: ''
        test: '  path_basename(''.bashrc'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 499
        num: 153
        package: Data::Hub::Util
        result: .bashrc
        summary: ''
        test: '  path_basename(''.bashrc.tmp'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 500
        num: 154
        package: Data::Hub::Util
        result: no-dots
        summary: ''
        test: '  path_basename(''/no-dots'');'
      usage: ''
    - access: public
      description: ''
      name: path_ext
      summary: Return the extension part of the given path
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 517
        num: 155
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_ext(undef);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 518
        num: 156
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  path_ext(''foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 519
        num: 157
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  path_ext(''/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 520
        num: 158
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  path_ext(''./foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 521
        num: 159
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  path_ext(''../foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 522
        num: 160
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  path_ext(''/foo/foo.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 523
        num: 161
        package: Data::Hub::Util
        result: txt
        summary: ''
        test: '  path_ext(''/foo.bar.txt'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 524
        num: 162
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_ext(''/foo/bar.'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 525
        num: 163
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_ext(''/foo/bar'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 526
        num: 164
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_ext(''.bashrc'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 527
        num: 165
        package: Data::Hub::Util
        result: tmp
        summary: ''
        test: '  path_ext(''.bashrc.tmp'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 528
        num: 166
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_ext(''/no-dots'');'
      usage: ''
    - access: public
      description: 'See also L</_normalize>

'
      name: path_normalize
      summary: Normalize form of the given path
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 544
        num: 167
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  path_normalize(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 545
        num: 168
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  path_normalize(''/a/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 546
        num: 169
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  path_normalize(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 547
        num: 170
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  path_normalize(''/a/../a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 548
        num: 171
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  path_normalize(''/a/../../a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 549
        num: 172
        package: Data::Hub::Util
        result: ../../w/s/x
        summary: ''
        test: '  path_normalize( "../../w/b/../s/x" );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 550
        num: 173
        package: Data::Hub::Util
        result: u/n/w
        summary: ''
        test: '  path_normalize( "u/n/w/" );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 551
        num: 174
        package: Data::Hub::Util
        result: w/s
        summary: ''
        test: '  path_normalize( "u/../w/b/../s" );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 552
        num: 175
        package: Data::Hub::Util
        result: u/n
        summary: ''
        test: '  path_normalize( "u//n" );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 553
        num: 176
        package: Data::Hub::Util
        result: u/n/f
        summary: ''
        test: '  path_normalize( "u//n/./f" );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 554
        num: 177
        package: Data::Hub::Util
        result: http://t/u/n
        summary: ''
        test: '  path_normalize( "http://t/u//n" );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 555
        num: 178
        package: Data::Hub::Util
        result: /d/e/f
        summary: ''
        test: '  path_normalize( ''/a/b/c/../../../d/e/f'' );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 556
        num: 179
        package: Data::Hub::Util
        result: ./a
        summary: ''
        test: '  path_normalize( ''./a'' );'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 557
        num: 180
        package: Data::Hub::Util
        result: /a
        summary: ''
        test: '  path_normalize( ''/./a'' );'
      usage: ''
    - access: public
      description: ''
      name: path_parent
      summary: Return the parent of the given path
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 595
        num: 181
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_parent('''');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 596
        num: 182
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  path_parent(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 597
        num: 183
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  path_parent(''/a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 598
        num: 184
        package: Data::Hub::Util
        result: /
        summary: ''
        test: '  path_parent(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 599
        num: 185
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_parent(''a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 600
        num: 186
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  path_parent(''a/b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 601
        num: 187
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  path_parent(''a/b.c'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 602
        num: 188
        package: Data::Hub::Util
        result: ../..
        summary: ''
        test: '  path_parent(''../../a'');'
      usage: ''
    - access: public
      description: ''
      name: path_name
      summary: Return the name part of a path
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 614
        num: 189
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_name('''');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 615
        num: 190
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_name(''/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 616
        num: 191
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  path_name(''/a'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 617
        num: 192
        package: Data::Hub::Util
        result: a
        summary: ''
        test: '  path_name(''/a/b/..'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 618
        num: 193
        package: Data::Hub::Util
        result: b
        summary: ''
        test: '  path_name(''a/b/'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 619
        num: 194
        package: Data::Hub::Util
        result: b.c
        summary: ''
        test: '  path_name(''a/b.c'');'
      usage: ''
    - access: public
      description: ''
      name: path_is_absolute
      summary: Is the path an absolute path
      tests:
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 631
        num: 195
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''/a'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 632
        num: 196
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''A:/b'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 633
        num: 197
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''/a/b'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 634
        num: 198
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''http://a'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 635
        num: 199
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''svn+ssh://a.b'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 636
        num: 200
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute('''');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 637
        num: 201
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''a/b'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 638
        num: 202
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''a:\\b'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 639
        num: 203
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''a/../b'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 640
        num: 204
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''../a'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 641
        num: 205
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''./a'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 642
        num: 206
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''svn+ssh//a.b'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 643
        num: 207
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''1://'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 644
        num: 208
        package: Data::Hub::Util
        result: ''
        summary: ''
        test: '  path_is_absolute(''+://'');'
      usage: ''
    - access: public
      description: ''
      name: dir_read
      summary: Return directory entries
      tests: []
      usage: ''
    - access: public
      description: ''
      name: file_read
      summary: Read file contents
      tests: []
      usage: ''
    - access: public
      description: ''
      name: file_read_binary
      summary: Read file contents (binary)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: file_create
      summary: Create an empty file if none exists
      tests: []
      usage: ''
    - access: public
      description: "\nwhere:\n\n\n  @contents           Items may be scalars or scalar
        references\n\nreturns:\n\n\n  1 when successful\n  dies if a handle cannot
        be obtained\n"
      name: file_write
      summary: Write contents to file
      tests: []
      usage: ''
    - access: public
      description: "\nwhere:\n\n\n  @contents           Items may be scalars or scalar
        references\n\nreturns:\n\n\n  1 when successful\n  dies if a handle cannot
        be obtained\n"
      name: file_write_binary
      summary: Write contents to file (binary)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: file_read_crown
      summary: Return the first line of a file
      tests: []
      usage: ''
    - access: public
      description: "\nwhere:\n\n\n  $path           # Absolute or relative file-system
        path\n  $mode   r|w|rw  # Read or write access (default 'r')\n"
      name: fs_handle
      summary: Return a file or directory handle
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dir_create
      summary: Create directory including parents
      tests: []
      usage: ''
    - access: public
      description: 'See also: L<File::Copy::copy>

'
      name: file_copy
      summary: Copy a file
      tests: []
      usage: ''
    - access: public
      description: 'See also: L<File::Copy::move>

'
      name: file_move
      summary: Move a file
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dir_copy
      summary: Copy a directory recursively
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dir_copy_contents
      summary: Copy a directory's contents recursively
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dir_remove_contents
      summary: Remove a directories contents
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dir_is_system
      summary: The directory is a system folder, such as '.svn'
      tests:
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 923
        num: 209
        package: Data::Hub::Util
        result: ''
        summary: normal usage
        test: '  dir_is_system(''.svn'', ''/tmp'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 924
        num: 210
        package: Data::Hub::Util
        result: ''
        summary: normal usage
        test: '  dir_is_system(''.git'', ''/tmp'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 925
        num: 211
        package: Data::Hub::Util
        result: ''
        summary: case sensitive
        test: '  dir_is_system(''.Svn'', ''/tmp'');'
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
        lineno: 926
        num: 212
        package: Data::Hub::Util
        result: ''
        summary: undefined test
        test: '  dir_is_system(undef, undef);'
      usage: ''
    - access: public
      description: 'See also: L<File::Copy::move>

'
      name: dir_move
      summary: Move a directory
      tests: []
      usage: ''
    - access: public
      description: ''
      name: file_remove
      summary: Remove a file
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dir_remove
      summary: Remove a directory recursively
      tests: []
      usage: ''
  name: Data::Hub::Util
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
    lineno: 85
    num: 58
    package: Data::Hub::Util
    result: ''
    summary: Load this module
    test: '  use Data::Hub::Util qw(:all);'
  version:
  - 0
  - 0
  - 0
- depends:
    '5.008003': 0
    Cwd: 0
    Data::CompositeHash: 0
    Data::Hub::Container: 0
    Data::Hub::FileSystem::AccessLog: 0
    Data::Hub::FileSystem::Node: 0
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Error::Simple: 0
    Exporter: 0
    Perl::Module: 0
    Scalar::Util: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: $Hub
  export_tags:
    all: $Hub
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: import
      summary: Instantiate C<$Hub> when requested
      tests: []
      usage: ''
    - access: public
      description: ''
      name: Relocate
      summary: Relocate the shared $Hub to a new physical path
      tests: []
      usage: ''
    - access: public
      description: "\n\nWhere:\n\n\n  $address may be an absolute address under the
        Hub root\n    \n    '/path/to/resource'\n    \n  or a relative path:\n\n\n
        \   './resource'\n    '../path/to/resource'\n\nA web server MUST populate
        C</sys/server/uri> with the server origin. For\nexample:\n\n\n  //example.com\n
        \ //example.com:90\n\nand MAY populate C</sys/request/scheme> with either:\n\n\n
        \ http\n  https\n\nThe C<-proto> option takes precedence to C</sys/request/scheme>
        and the\ndefault scheme of C<http>.\n\nIf C</sys/server/uri> is not populated,
        then the full C<file://> URI is\nproduced.\n"
      name: uri
      summary: Return a URI to the specified resource
      tests: []
      usage: ''
  name: Data::Hub
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Perl::Module: 0
    Tie::Hash: 0
  description: '

    The functions C<keys>, C<values>, and C<each> will return the hash entries

    in the order they were created.


    This package simply maintains a list of the hash keys.  The list is updated

    when new items are created (C<STORE>) or deleted (C<DELETE>).  The list is used

    when the hash is iterated (C<FIRSTKEY> and C<NEXTKEY>).


'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Data::OrderedHash
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
  seealso: ''
  summary: 'Ordered Hash - First in, first out (FIFO)

'
  synopsis: '

'
  tests:
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
    lineno: 111
    num: 213
    package: Data::OrderedHash
    result: Apple;Cherry;Banana
    summary: ''
    test: "  my %h = ();\n  tie %h, 'Data::OrderedHash';\n  $h{'first'} = \"Apple\";\n
      \ $h{'second'} = \"Cherry\";\n  $h{'third'} = \"Banana\";\n  join ';', values
      %h;"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
    lineno: 120
    num: 214
    package: Data::OrderedHash
    result: aXbBcC
    summary: Items retain their initial position
    test: "  my $h = Data::OrderedHash->new();\n  %$h = qw(a A b B c C);\n  $$h{'a'}
      = 'X';\n  join '', %$h;"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
    lineno: 127
    num: 215
    package: Data::OrderedHash
    result: zxyw
    summary: ''
    test: "  my $h = Data::OrderedHash->new();\n  $h->{'z'} = \"Apple\";\n  $h->{'x'}
      = \"Banana\";\n  $h->{'y'} = \"Cherry\";\n  my $r = '';\n  while (my ($k, $v)
      = each %$h) { $r .= $k; delete $$h{$k} }\n  $h->{'w'} = \"Can't elope\";\n  $r
      .= join('', keys %$h);\n  $r;"
  version:
  - 0
  - '3'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: new
      summary: Constructor
      tests:
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
        lineno: 9
        num: 216
        package: Error::Logical
        result: ''
        summary: ''
        test: "  use Error::Logical;\n  throw Error::DoesNotExist 'some resource';"
      usage: ''
  name: Error::Logical
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::MissingParam
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::IllegalParam
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::DoesNotExist
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::AccessDenied
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::Security
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::Continue
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::HttpsRequired
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::HttpsNotRequired
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Perl::Options: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: '

        We set Error::Depth to that which reflects the caller''s perspective.

'
      name: new
      summary: Constructor
      tests:
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
        lineno: 12
        num: 217
        package: Error::Programatic
        result: ''
        summary: ''
        test: "  use Error::Programatic;\n  throw Error::NotStatic;"
      usage: ''
  name: Error::Programatic
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::NotStatic
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::IsStatic
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::MissingArg
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Error::IllegalArg
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Misc::Stopwatch: 0
    Time::Piece: 0
    Time::Regex::Strftime: 0
  description: "\nLog-file entries are formatted as:\n\n   .---------------------------------------------
    1) Date and time\n   |     .--------------------------------------- 2) Logging
    level\n   |     |      .-------------------------------- 3) Filename and line
    number\n   |     |      |           .-------------------- 4) Process ID, i.e.,
    $$\n   |     |      |           |       .------------ 5) Elapsed time\n   |     |
    \     |           |       |       .---- 6) Log Message\n   |     |      |           |
    \      |       |\n   |     |      |           |       |       |\n   v     v      v
    \          v       v       v\n  [...] [warn] <test.pl:5> [22933] [0.0229] ...\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: "where:\n\n  $stopwatch  isa Misc::Stopwatch\n"
      name: new
      summary: Construct a new instance
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/LogUtil.pm
        lineno: 15
        num: 218
        package: Misc::LogUtil
        result: ''
        summary: Create a new instance
        test: "  use Misc::LogUtil;\n  Misc::LogUtil->new();"
      usage: ''
    - access: public
      description: ''
      name: debug
      summary: Write a debug message to the apache log
      tests: []
      usage: ''
    - access: public
      description: ''
      name: warn
      summary: Write a warning to the apache log
      tests: []
      usage: ''
    - access: public
      description: ''
      name: error
      summary: Write an error to the apache log
      tests: []
      usage: ''
    - access: public
      description: ''
      name: notice
      summary: Write a notice to the apache log
      tests: []
      usage: ''
    - access: public
      description: ''
      name: info
      summary: Write an informational message to the apache log
      tests: []
      usage: ''
    - access: public
      description: ''
      name: message
      summary: Write to the apache log
      tests: []
      usage: ''
  name: Misc::LogUtil
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/LogUtil.pm
  seealso: "\n  Misc::Stopwatch\n\n"
  summary: 'Simple logging utility with run-time context

'
  synopsis: "\n  use Misc::LogUtil;\n  my $log = Misc::LogUtil->new();\n\nOr, to capture
    elapsed time:\n\n  use Misc::LogUtil;\n  use Misc::Stopwatch;\n  my $sw = Misc::Stopwatch->new;\n
    \ my $log = Misc::LogUtil->new($sw);\n  $sw->reset->start(); # Elapsed time starts
    now\n\nCall logging methods:\n\n  $log->error('The code is smoking');\n  $log->warn('The
    code is hot');\n  $log->notice('The code is warm');\n  $log->info('The code is
    lighting up');\n  $log->debug('The code is doing what?');\n\n"
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Time::HiRes: 0
  description: "\nThis module provides convenient methods as expected from a stopwatch.\n\n
    \ start       Starts the stopwatch\n  lap         Marks a lap time\n  stop        Stops
    it\n  elapsed     Returns the elapsed time\n  reset       Stops if running and
    clears all laps\n  is_running  True or False\n\nSimilar modules:\n\nC<Time::Stopwatch>
    - provides a tied interface and will work without \nC<Time::HiRes>.\n\nC<Benchmark::Stopwatch>
    - is mostly identical, however does not have the \nC<elapsed> method.\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: _capture
      summary: Capture the moment
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: new
      summary: Construct a new Misc::Stopwatch
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 10
        num: 219
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  use Misc::Stopwatch;'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 11
        num: 220
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  my $sw = Misc::Stopwatch->new();'
      usage: ''
    - access: public
      description: 'Returns C<$self>.


        Note that calling this on an already-running instance will reset it.

'
      name: start
      summary: Reset and Start the stopwatch
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 25
        num: 221
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  my $sw = Misc::Stopwatch->new()->start();'
      usage: ''
    - access: public
      description: '

        Returns C<$self>.


        This is is a no-op unless the stopwatch is running.

'
      name: lap
      summary: Preserve the elapsed time without stopping
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 41
        num: 222
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  my $sw = Misc::Stopwatch->new()->start()->lap();'
      usage: ''
    - access: public
      description: 'Returns C<$self>.

'
      name: stop
      summary: Stop
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 54
        num: 223
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  my $sw = Misc::Stopwatch->new()->start()->stop();'
      usage: ''
    - access: public
      description: 'In its second form, elapsed will return the time from L</start>
        to now (or when

        L</stop> was called).


        C<undefined> is returned when:



        1.) C<$lap> is provided but no such lap exists


        2.) L</is_running> returns a false value

'
      name: elapsed
      summary: Return the elapsed time
      tests:
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 76
        num: 224
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  Misc::Stopwatch->new()->start()->elapsed();'
      usage: ''
    - access: public
      description: 'Returns C<$self>.

'
      name: reset
      summary: Stop and clear data
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 97
        num: 225
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  my $sw = Misc::Stopwatch->new()->reset();'
      usage: ''
    - access: public
      description: "Returns a true value if the stopwatch has been started and has
        not been \nstopped.\n"
      name: is_running
      summary: Boolean logic
      tests:
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 111
        num: 226
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  Misc::Stopwatch->new()->is_running();'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
        lineno: 112
        num: 227
        package: Misc::Stopwatch
        result: ''
        summary: ''
        test: '  Misc::Stopwatch->new()->start()->is_running();'
      usage: ''
  name: Misc::Stopwatch
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  seealso: ''
  summary: 'Measure elapsed time

'
  synopsis: "\n  #!/usr/bin/perl\n  use Misc::Stopwatch;\n  my $sw = Misc::Stopwatch->new()->start();\n
    \ for (1 .. 3) {\n    sleep 1;\n    $sw->lap();\n  }\n  $sw->stop();\n  printf
    \"Lap 1: %f\\n\", $sw->elapsed(1);\n  printf \"Lap 2: %f\\n\", $sw->elapsed(2);\n
    \ printf \"Lap 3: %f\\n\", $sw->elapsed(3);\n  printf \"Total: %f\\n\", $sw->elapsed();\n\nWill
    output something like:\n\n  Lap 1: 1.000244\n  Lap 2: 2.000375\n  Lap 3: 3.000527\n
    \ Total: 3.000544\n\n"
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Error::Programatic: 0
    Exporter: 0
    Perl::Module: 0
    constant: 0
  description: ''
  export: ''
  export_ok: ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_WEEK, ONE_YEAR, ONE_MONTH,
    time_dhms, time_ymdhms, time_apr_to_hires
  export_tags:
    all: ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_WEEK, ONE_YEAR, ONE_MONTH,
      time_dhms, time_ymdhms, time_apr_to_hires
    const: ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_WEEK, ONE_YEAR, ONE_MONTH
    std: time_dhms, time_ymdhms, time_apr_to_hires
  methods:
    private: []
    public:
    - access: public
      description: "\n  my ($days, $hours, $min, $sec) = time_dhms(time);\n"
      name: time_dhms
      summary: Split the provided seconds into days, hours, minutes, and seconds.
      tests: []
      usage: ''
    - access: public
      description: "\n  my ($years, $months, $days, $hours, $min, $sec) = time_ymdhms(time);\n\nWARNING:
        This is currently a rough estimation, using 365 days/year and\n30 days/month.\n"
      name: time_ymdhms
      summary: Split the provided seconds into years, months, days, hours, minutes,
        and seconds.
      tests: []
      usage: ''
    - access: public
      description: ''
      name: time_apr_to_hires
      summary: Convert apr time string to perl hires string
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Time.pm
        lineno: 88
        num: 228
        package: Misc::Time
        result: ''
        summary: ''
        test: '  use Misc::Time qw(:all);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Time.pm
        lineno: 89
        num: 229
        package: Misc::Time
        result: '1193094188.212812'
        summary: Simple time string conversion
        test: '  time_apr_to_hires(''1193094188212812'');'
      usage: ''
  name: Misc::Time
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Time.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Error::Programatic: 0
    Perl::Module: 0
    Perl::Options: 0
  description: ''
  export: ''
  export_ok: padding, trailing, leading
  export_tags:
    all: padding, trailing, leading
  methods:
    private: []
    public:
    - access: public
      description: "\noptions:\n\n\n  -crlf       Just count surrounding cr/lf characters\n\nReturns
        an array of widths: ($w1, $w2)\n\n  $w1 = Number of preceeding whitespace
        characters\n  $w2 = Number of trailing whitespace characters\n\nReturns (0,
        0) if non-whitespace characters are immediately found in the \npreceeding
        or trailing regions.\n\nReturns C<undef> if C<$pos> is less than C<$[>\n"
      name: padding
      summary: Get number of surrounding whitespace characters
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 31
        num: 230
        package: Parse::Padding
        result: ''
        summary: ''
        test: '  use Parse::Padding qw(padding);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 33
        num: 231
        package: Parse::Padding
        result: 4;3
        summary: ''
        test: "  my $str = \"    a   \";\n  join ';', padding(\\$str, 4, 5);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 37
        num: 232
        package: Parse::Padding
        result: 2;3
        summary: ''
        test: "  my $str = \" \\na\\r\\n \";\n  join ';', padding(\\$str, 2, 3);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 41
        num: 233
        package: Parse::Padding
        result: 1;2
        summary: ''
        test: "  my $str = \" \\na\\r\\n \";\n  join ';', padding(\\$str, 2, 3, -crlf);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 45
        num: 234
        package: Parse::Padding
        result: 1;2
        summary: ''
        test: "  my $str = \" \\n\\na\\r\\n\\r\\n \";\n  join ';', padding(\\$str,
          3, 4, -crlf);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 49
        num: 235
        package: Parse::Padding
        result: 0;0
        summary: ''
        test: "  my $str = \" a \";\n  join ';', padding(\\$str, 1, 2, -crlf);"
      usage: ''
    - access: public
      description: "\nwhere:\n\n\n  $chars        # characters to count\n  \\$text
        \       # text to search\n  $begin_index  # index within $text to start searching\n
        \ $eol          # if true, $chars must be at end-of-line\n"
      name: trailing
      summary: Count trailing characters
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 92
        num: 236
        package: Parse::Padding
        result: ''
        summary: ''
        test: '  use Parse::Padding qw(trailing);'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 93
        num: 237
        package: Parse::Padding
        result: ''
        summary: invalid index
        test: '  trailing(''\r\n'', " xxx\r\n", ''abc'');'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 94
        num: 238
        package: Parse::Padding
        result: ''
        summary: invalid chars
        test: '  trailing('''', " xxx\r\n", 4);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 95
        num: 239
        package: Parse::Padding
        result: '3'
        summary: ''
        test: '  trailing(''\s'', " xxx \r\n", 4);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 96
        num: 240
        package: Parse::Padding
        result: '0'
        summary: ''
        test: '  trailing(''\r\n'', " xxx \r\n", 4);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 97
        num: 241
        package: Parse::Padding
        result: '2'
        summary: ''
        test: '  trailing(''\r\n'', " xxx\r\n", 4);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 98
        num: 242
        package: Parse::Padding
        result: '0'
        summary: ''
        test: '  trailing(''\r\n'', " xxx\r\n", 999);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 99
        num: 243
        package: Parse::Padding
        result: '0'
        summary: ''
        test: '  trailing(''\r\n'', " xxx\r\n", -999);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 100
        num: 244
        package: Parse::Padding
        result: '2'
        summary: ''
        test: '  trailing(''\r\n'', "\r\n\r\n", 0, 1);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 101
        num: 245
        package: Parse::Padding
        result: '1'
        summary: ''
        test: '  trailing(''\r\n'', "\n\n\n", 0, 1);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 102
        num: 246
        package: Parse::Padding
        result: '1'
        summary: end-of-string == $eol
        test: '  trailing(''abcd'', "a\na", 2, 1);'
      usage: ''
    - access: public
      description: "\nwhere:\n\n\n  $chars        # characters to count\n  \\$text
        \       # text to search\n  $begin_index  # index within $text to start searching\n
        \ $bol          # if true, $chars must be at begin-of-line\n"
      name: leading
      summary: Count leading characters
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 142
        num: 247
        package: Parse::Padding
        result: ''
        summary: ''
        test: '  use Parse::Padding qw(leading);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 143
        num: 248
        package: Parse::Padding
        result: '1'
        summary: ''
        test: '  leading(''\s'', " xxx", 1);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 144
        num: 249
        package: Parse::Padding
        result: '3'
        summary: ''
        test: '  leading(''\s'', "\r \nxxx", 3);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 145
        num: 250
        package: Parse::Padding
        result: '0'
        summary: ''
        test: '  leading(''\r\n'', " xxx", 1);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 146
        num: 251
        package: Parse::Padding
        result: '3'
        summary: ''
        test: '  leading(''\r\n'', "\r\n\rxxx", 3);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 147
        num: 252
        package: Parse::Padding
        result: '0'
        summary: ''
        test: '  leading(''\r\n'', "\r\n\rxxx", -999);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 148
        num: 253
        package: Parse::Padding
        result: '0'
        summary: ''
        test: '  leading(''\r\n'', "\r\n\rxxx", 999);'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 149
        num: 254
        package: Parse::Padding
        result: ''
        summary: invalid chars
        test: '  leading('''', "\r\n\rxxx", 3);'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 150
        num: 255
        package: Parse::Padding
        result: ''
        summary: invalid index
        test: '  leading(''\r\n'', "\r\n\rxxx", ''abc'');'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 151
        num: 256
        package: Parse::Padding
        result: '1'
        summary: begin-of-string == $bol
        test: '  leading(''abcd'', "axe", 1, 1);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
        lineno: 152
        num: 257
        package: Parse::Padding
        result: '1'
        summary: ''
        test: '  leading(''abcd'', "\naxe", 2, 1);'
      usage: ''
  name: Parse::Padding
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Error::Programatic: 0
    Exporter: 0
    Parse::StringTokenizer: 0
    Perl::Module: 0
    constant: 0
  description: '

    See L<Parse::StringTokenizer>


'
  export: ''
  export_ok: str_token
  export_tags:
    all: str_token
  methods:
    private: []
    public:
    - access: public
      description: 'If the first parameter is an instance of __PACKAGE__, it will
        be returned

        without modification.

        See also L</new>

'
      name: str_token
      summary: Construct an instance of __PACKAGE__
      tests: []
      usage: ''
    - access: public
      description: "\nWhen $string is passed by reference, it will be modified by
        L<shift>, and \nL<pop>.\n\nSee L<Parse::StringTokenizer> for options\n"
      name: new
      summary: Constructor
      tests:
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
        lineno: 44
        num: 259
        package: Parse::StringToken
        result: ''
        summary: Needs to have matching pairs
        test: '  str_token('''', -contained => ''123'');'
      usage: ''
    - access: public
      description: "TODO\ntest(match) # Contains escaped quotes\n  my $s = str_token(q(100.3
        '7\\' 12\"' 1.325E+10));\n  $s->shift; $s->shift;\n\\'7\\\\\\' 12\"\\'\n"
      name: shift
      summary: Return the next token and trim the string
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
        lineno: 58
        num: 260
        package: Parse::StringToken
        result: a
        summary: Basic
        test: '  str_token("a b c")->shift;'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
        lineno: 59
        num: 261
        package: Parse::StringToken
        result: and a two
        summary: Contains spaces
        test: "  my $s = str_token(q(one 'and a two' \"and a three\"));\n  $s->shift;
          $s->shift;"
      usage: ''
    - access: public
      description: ''
      name: pop
      summary: Return the last token and trim the string
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
        lineno: 82
        num: 262
        package: Parse::StringToken
        result: c
        summary: Basic
        test: '  str_token("a b c")->pop;'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
        lineno: 83
        num: 263
        package: Parse::StringToken
        result: and a two
        summary: Contains spaces
        test: "  my $s = str_token(q(one 'and a two' \"and a three\"));\n  $s->pop;\n
          \ $s->pop;"
      usage: ''
    - access: public
      description: ''
      name: split
      summary: Get an array of all tokens
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
        lineno: 100
        num: 264
        package: Parse::StringToken
        result: a-b-c
        summary: Basic
        test: '  join(''-'', str_token("a b c")->split);'
      usage: ''
  name: Parse::StringToken
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  seealso: ''
  summary: 'Object for tokenized strings

    No symbols are exported by default.


'
  synopsis: "\n  use Perl::StringToken qw(str_token);\n  die unless 'a' eq str_token(\"a
    b c\")->shift;\n\n"
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
    lineno: 21
    num: 258
    package: Parse::StringToken
    result: ''
    summary: Include symbols
    test: '  use Parse::StringToken qw(:all);'
  version:
  - '1'
  - 0
  - 0
- depends:
    Error::Programatic: 0
    Perl::Module: 0
  description: '

    Similiar in spirit to C<strtok>.


    Default delimiter is whitespace (regex C<\s>).


    Default quotes which protect the delimiter are: C<''">


'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: "\nQuotes and contained segments can have escaped characters, like:\n\n\n
        \ 'don\\'t break me'\n\nright now, it comes back as\n\n  dont\\'t break me\n\nTODO,
        unescape it so it becomes\n\n  dont't break me\n\nthe difficulty is that you
        DO NOT want to unescape the backslashes here\n\n  \"my quotes \\'are\\' different\"\n\nwhich
        means reworking the RE such that the leading and tailing quotes are \nNOT
        removed, i.e., they remain part of the segment.  and a subsequent \nstep added
        to `unpack` which knows what to do by the presence of leading and\ntrailing
        characters.\n"
      name: _compile
      summary: Compile the regular expression
      tests: []
      usage: ''
    public:
    - access: public
      description: "\noptions:\n\n\n  -delim => $delimiter      # Token separator\n
        \ -quotes => $quotes        # Quote characters which protect the\n                            #
        delimiter, and will be ignored\n  -contained => $chars      # Character pairs
        which protect the delimiter\n  -keywords => \\@keywords   # Words which will
        not be split\n  -preserve => 1            # Preserve quotes which surround
        each field\n\nBy default, the following is considered three tokens:\n\n\n
        \ one 'and a two' \"and a three\"\n\n"
      name: new
      summary: Constructor
      tests: []
      usage: ''
    - access: public
      description: ''
      name: split
      summary: Unpack the string and return non-empty fields
      tests: []
      usage: ''
    - access: public
      description: ''
      name: unpack
      summary: Split a string into fields (opposite of pack)
      tests: []
      usage: ''
    - access: public
      description: "\n-preserve\n\n  TODO: when packing the field will be double quoted
        if it contains the\n  primary delimiter.  If the field is quoted, then do
        not double-quote\n"
      name: pack
      summary: Join fields together as a string (opposite of unpack)
      tests: []
      usage: ''
    - access: public
      description: ''
      name: shift
      summary: Return the first field and trim the string
      tests: []
      usage: ''
    - access: public
      description: ''
      name: pop
      summary: Return the last field and trim the string
      tests: []
      usage: ''
    - access: public
      description: 'Returns the new field count.

'
      name: push
      summary: Push a field on to the string
      tests: []
      usage: ''
  name: Parse::StringTokenizer
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringTokenizer.pm
  seealso: ''
  summary: 'Extract fields from strings

    No symbols are exported by default.


'
  synopsis: "\n  use Parse::StringTokenizer;\n  my $tokenizer = String::Tokenizer->new();\n
    \ my $str = 'a b c';\n  die unless 'a' eq $tokenizer->shift($str);\n  die unless
    'b c' eq $str;\n\n"
  tests: []
  version:
  - '1'
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Error::Programatic: 0
    Perl::Comparison: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::ArgumentStack
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/ArgumentStack.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Error::Programatic: 0
    Parse::Template::CallbackArgument: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Arguments
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Arguments.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Data::OrderedHash: 0
    Error::Programatic: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::BBCode
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/BBCode.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Perl::Module: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::BBCode::Directives
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/BBCode.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Algorithm::KeyGen: 0
    Data::Hub::Courier: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    Error::Programatic: 0
    Parse::Padding: 0
    Parse::Template::ArgumentStack: 0
    Parse::Template::Arguments: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: "where C<%args> can be any combination of:\n\n  text      => \\$text,
        \   # Template text\n  path      => $path,     # Template path\n  name      =>
        $name,     # Template name\n  out       => \\$out,     # Where to write the
        result\n  scope     => $scope,    # Stack index limit (invokation is being
        deferred)\n  regions   => \\@regions, # Known regions (\\$text is being re-used)\n
        \ esc       => $chars     # Escape chars in resolved values\n"
      name: _create_context
      summary: Add a new context on to the context stack
      tests: []
      usage: ''
    - access: private
      description: "returns:\n\n  [\\@match1, \\@match2, ...]\nwhere each C<\\@match>
        is:\n\n  [\n    $beg,       # Begin index\n    $end,       # End index\n    $nested,
        \   # Has nested regions (1|undef)\n  ]\n"
      name: _find_regions
      summary: Glean the begin and end indexes into template text
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _remove_context
      summary: Remove the current context from the context stack
      tests: []
      usage: ''
    - access: private
      description: 'See _create_context for C<%args>

'
      name: _invoke
      summary: Implementation method
      tests: []
      usage: ''
    - access: private
      description: '

        If C<$to_eof> is a true value and an end directive is not found, C<_slurp>

        will read to the end of the template text.


        If C<$to_eol> is not defined, it is true, which means the newlines after

        the closing tag will be consumed.

'
      name: _slurp
      summary: Slurp the contents of for block-type directive
      tests: []
      usage: ''
    - access: private
      description: "\nReturns an array of widths: ($w1, $w2)\n\n  $w1 = Number of
        preceeding whitespace characters\n  $w2 = Number of trailing whitespace characters\n\nReturns
        an (0, 0) if non-whitespace characters are immediately found in the \npreceeding
        or trailing regions.\n\nWe will look up to 80 characters in front of the current
        position.\n"
      name: _padding
      summary: Get number of preceeding and trailing whitespace characters
      tests: []
      usage: ''
    public:
    - access: public
      description: "\noptions:\n\n\n  -begin => $begin_str          # Begins match
        (default '[#')\n  -end => $end_str              # Ends match (default ']')\n
        \ -close => $close_str          # Closes a block (default 'end')\n  -directive
        => $directive_str  # Identifies a directive (default ':')\n  -out => \\$output
        \             # Where output is written\n"
      name: new
      summary: Constructor
      tests: []
      usage: ''
    - access: public
      description: ''
      name: Default_Context
      summary: Default (initial) context
      tests: []
      usage: ''
    - access: public
      description: ''
      name: set_directives
      summary: Set the directive handlers for each given name-value pair
      tests: []
      usage: ''
    - access: public
      description: ''
      name: set_directive
      summary: Set the directive handler for a given name-value pair
      tests: []
      usage: ''
    - access: public
      description: "where:\n\n  $name   directive name\n  $idx    0 for begin, 1 for
        end\n"
      name: get_directive
      summary: Get a directive handler
      tests: []
      usage: ''
    - access: public
      description: ''
      name: compile
      summary: Main invokation method
      tests: []
      usage: ''
    - access: public
      description: ''
      name: compile_text
      summary: Main invokation method
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_ctx
      summary: Get the current context from the context stack
      tests: []
      usage: ''
    - access: public
      description: 'Calls to use must match calls to un-use within the same context

'
      name: use
      summary: Add a namespace on to the local stack
      tests: []
      usage: ''
    - access: public
      description: 'Calls to use must match calls to un-use within the same context

'
      name: unuse
      summary: Remove the last used namespace from the local stack
      tests: []
      usage: ''
    - access: public
      description: ''
      name: eval
      summary: Evaluate the given element
      tests: []
      usage: ''
    - access: public
      description: "\nThis routine does the work of processing the variable spec with
        consideration\nof the `x ? y : z`, `&&` and `||` operations. For instance:\n\n\n
        a\n a || b\n t ? a : b\n t ? f || a : b && c\n f ? f || c : b && a\n\nSee
        also: `src/test/perl/t-eval-fields.pl`\n"
      name: eval_fields
      summary: Walk through fields locically returning the [uncompiled] value
      tests: []
      usage: ''
    - access: public
      description: ''
      name: get_compiled_value
      summary: Get a variable as a string and compile if necessary
      tests: []
      usage: ''
    - access: public
      description: 'See also: L</get_value>

'
      name: get_value_str
      summary: Get a variable value as a string
      tests: []
      usage: ''
    - access: public
      description: ''
      name: value_to_string
      summary: Get the string representation of a value
      tests: []
      usage: ''
    - access: public
      description: 'C<$addr> is passed by-reference because we will update it when
        applying

        local path information.

'
      name: get_value
      summary: Get a variable value
      tests: []
      usage: ''
    - access: public
      description: "\nAll directives nested SHOULD be either inline (they do not slurp)
        or blocks \n(they have an end directive).\n\nAll nested directives MUST also
        have their own end directive. This is not \ncurrently the case, so we do our
        best. Take this scenario:\n\n\n  [#:set foo]\n    This is a block\n  [#:end
        set]\n\nWhich is just fine. However, this is difficult:\n\n\n  [#:set foo]\n
        \   [#:set bar = 'Bar']\n    This is a block\n  [#:end set]\n\nBecause we
        don't know that the nested `:set` directive is inline. So, we ask\nfor the
        `$to_eof` parameter. If this is true, then we will return the normal\nend
        position, that is -1 when nested occurences are not paired up. Otherwise\nwe
        will return the end position of the *last* corresponding end directive.\nThis
        is the best we can do without more information, and passing or garnering\nthat
        information is considered too expensive an operation at this level.\n\nProvisions
        have been made only considering the `:set` and `:into` directives. \n-Ryan
        11/2012\n"
      name: end_pos
      summary: Find the position of the corresponding end directive
      tests: []
      usage: ''
    - access: public
      description: 'Similar in spirit to L</substr_pos> except this routine uses regular

        expressions to ensure a nexted ''[#abcd'' does not count as a nested ''[#ab''
        and

        this routine does not track all sub-indexes.

'
      name: block_pos
      summary: Return the begin and end block positions
      tests: []
      usage: ''
    - access: public
      description: "\nThis routine recognizes C<$begin_marker> and C<$end_marker>
        as a balanced\npair.\n\nExample 1:\n\n\n  $begin_marker = [#\n  $end_marker
        \  = ]\n  a [#b [#c] [#d]] e\n    ^            ^\n  returns [[2, 15]]\n\nExample
        2:\n\n\n  $begin_marker = [#if\n  $end_marker   = [#end if]\n  [#if true]do
        something[#end if]\n  ^                     ^\n  returns [[0, 22]]\n"
      name: substr_pos
      summary: Return positions of begin and end markers
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
        lineno: 962
        num: 265
        package: Parse::Template::Base
        result: 0-3,1-2
        summary: ''
        test: "  use Parse::Template::Base;\n  my $p = new Parse::Template::Base;\n
          \ my $text = '<<>>';\n  my @pos = $p->substr_pos(\\$text, '<', '>', 0);\n
          \ join ',', map {join '-', @$_} @pos;"
      usage: ''
  name: Parse::Template::Base
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests:
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
    lineno: 1063
    num: 266
    package: Parse::Template::Base
    result: Hello World
    summary: Simple replacement
    test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#name]';\n  my $p =
      new Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {name =>
      'World'});\n  return $$o;"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
    lineno: 1071
    num: 267
    package: Parse::Template::Base
    result: Hello World
    summary: Variable expansion
    test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#name]';\n  my $p =
      new Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {name =>
      '[#next]', next => 'World'});\n  return $$o;"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
    lineno: 1079
    num: 268
    package: Parse::Template::Base
    result: Hello World
    summary: Nested elements
    test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#data/name]';\n  my
      $p = new Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {data
      => {name => 'World'}});\n  return $$o;"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
    lineno: 1087
    num: 269
    package: Parse::Template::Base
    result: Hello World
    summary: Dynamic expansion
    test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#[#name]]';\n  my $p
      = new Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {name =>
      'next', next => 'World'});\n  return $$o;"
  version:
  - 0
  - '1'
  - 0
- depends:
    Error::Programatic: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::CallbackArgument
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/CallbackArgument.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: length
      summary: Used in binary bool operation, i.e. [#:if CONTENT]
      tests: []
      usage: ''
  name: Parse::Template::Content
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Content.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    App::Console::Color: 0
    Data::Format::Hash: 0
    Data::Hub::Util: 0
    Error::Programatic: 0
    Parse::StringToken: 0
    Parse::Template::Debug::Listener: 0
    Perl::Module: 0
    Term::ANSIColor: 0
    Term::ReadLine: 0
    Term::Size: 0
    Tie::Scalar: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Debug::Debugger
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Debug/Debugger.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Debug::Listener
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Debug/Listener.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    App::Console::Color: 0
    App::Console::Prompts: 0
    Data::Hub::Util: 0
    Error::Programatic: 0
    Parse::Template::Debug::Listener: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Debug::Prompt
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Debug/Prompt.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Encode: 0
    Error::Logical: 0
    MIME::Base64: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Directives::Base64
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/Base64.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Directives::Color
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/Color.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Directives::ContentEditable::ForLoop
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/ContentEditable/ForLoop.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Parse::Template::Directives::ContentEditable::ForLoop: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: FETCH
      summary: Return the handler which processes all tags
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _create_element
      summary: Create content editable elements
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: ce:paras
      summary: alias for [#:ce ... -paras='enforce']
      tests: []
      usage: ''
  name: Parse::Template::Directives::ContentEditable
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/ContentEditable.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    HTML::Entities: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Directives::Encode
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/Encode.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Module: 0
    Time::Piece: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Directives::FileInfo
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/FileInfo.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Module: 0
    Tie::Hash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: ''
      name: FETCH
      summary: Return the handler which processes all tags
      tests: []
      usage: ''
    - access: private
      description: '[#:html:p mytext]

'
      name: _tag
      summary: Create HTML elements
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: html:attr
      summary: Create editable attributes
      tests: []
      usage: ''
    - access: public
      description: ''
      name: html:escape
      summary: Replace '<' and '>' with their numeric character entity codes
      tests: []
      usage: ''
    - access: public
      description: ''
      name: html:url
      summary: Return a URL for the specified resource
      tests: []
      usage: ''
    - access: public
      description: ''
      name: html:image
      summary: Create an HTMLImage element for the specified resource
      tests: []
      usage: ''
  name: Parse::Template::Directives::HTML
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/HTML.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Format::XFR: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::Directives::JS
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/JS.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    HTML::Entities: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: '       and at that time take care of also encoding the hash.

        join ''&amp;'', @result;

'
      name: TODO
      summary: enable this behavior via an option (or another directive)
      tests: []
      usage: ''
    public: []
  name: Parse::Template::Directives::URI
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Directives/URI.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Util: 0
    Error::Logical: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Parse::Template::ForLoop
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/ForLoop.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Algorithm::KeyGen: 0
    Data::Dumper: 0
    Data::Format::JavaScript: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    Math::Symbolic: 0
    Parse::Padding: 0
    Parse::StringTokenizer: 0
    Parse::Template::ArgumentStack: 0
    Parse::Template::Content: 0
    Parse::Template::Directives::Base64: 0
    Parse::Template::Directives::FileInfo: 0
    Parse::Template::ForLoop: 0
    Perl::Comparison: 0
    Perl::Module: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: ''
      name: get_opts
      summary: Utility method to extract and dereference options
      tests: []
      usage: ''
    - access: public
      description: '  [#:define myvar] ... [#:end define]


        The difference between `define` and `set` is that `define` compiles the block

        when its encountered (under that context). This can also be acheived with

        `set -compile => 1`.

'
      name: define
      summary: Define a variable
      tests: []
      usage: ''
    - access: public
      description: "  [#:set myvar=myval]\n  [#:set mysub => subroutine, -noexec]\n\n!!!
        This needs to be depricated (b/c of nesting, finding the end_pos) and\n!!!
        moved to a directive `:set:block`\n\n  [#:set myvar] ... [#:end set]\n  [#:set
        myvar -compile] ... [#:end set]\n"
      name: set
      summary: Set a local variable
      tests: []
      usage: ''
    - access: public
      description: ''
      name: dump
      summary: Dump a variable value
      tests: []
      usage: ''
    - access: public
      description: ''
      name: exec
      summary: execute a subroutine
      tests: []
      usage: ''
    - access: public
      description: ''
      name: filter
      summary: execute a subroutine, passing the pre-parsed block contents
      tests: []
      usage: ''
  name: Parse::Template::Standard
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Standard.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Carp: 0
    Data::Format::Nml::Document: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    HTML::Entities: 0
    Parse::Template::BBCode: 0
    Parse::Template::Directives::Color: 0
    Parse::Template::Directives::ContentEditable: 0
    Parse::Template::Directives::Encode: 0
    Parse::Template::Directives::HTML: 0
    Parse::Template::Directives::JS: 0
    Parse::Template::Directives::URI: 0
    Perl::Module: 0
    WWW::Livesite::Args: 0
    WWW::Misc::Image: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: "\nSpaces and ampersands will be encoded corretly:\n\n\n  http://www.example.com/a
        b & c/c?a=b&c=1 2&d=%20;e=\"q\"\n\nbecomes:\n\n\n  http://www.example.com/a%20b%20&amp;%20c/c?a=b&amp;c=1%202&amp;d=%20&amp;e=%22q%22\n\n"
      name: _mk_url
      summary: Given a relative path or URI, return an escaped URL for use in HTML
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _elem_attrs
      summary: Format arguments as element attributes
      tests: []
      usage: ''
    - access: private
      description: "\nwhere:\n\n\n  $src              image url (src attribute)\n
        \ %attrs            image attributes which invoke special behavior\n    $attrs{src}
        \    image url (src attribute)\n    $attrs{resize}  requests the image be
        resized to WxH/wxh\n    $attrs{href}    the image is wrapped in an anchor\n
        \   $attrs{target}  that anchor has a target\n\noptions:\n\n\n  -resize     =>
        $WxH/wxh\n  -max_width  => $num\n  -max_height => $num\n  -min_width  => $num\n
        \ -min_height => $num\n\nResize format is C<WxH/wxh> (read as max-width by
        max-height over min-width by\nmin-height) in pixels.\n\n  100           width
        <= 100\n  100x          width <= 100\n  100x99        width <= 100, height
        <= 99\n  100x99/       width <= 100, height <= 99\n  100x99/10     10 <= width
        <= 100, height <= 99\n  100x99/10x    10 <= width <= 100, height <= 99\n  100x99/10x9
        \  10 <= width <= 100, 9 <= height <= 99\n  /10           10 <= width\n  /10x
        \         10 <= width\n  /10x9         10 <= width, 9 <= height\n\nTemplate
        options should take precedence over data options so that one may\nlock-down
        the flow of the page.\n\nThe Livesite responder for images allows one to specify
        the resize parameter\nin the URL:\n\n\n  http://www.example.com/images/laura.jpg?resize=50x50\n\nHowever
        the server simply resizes the image to the nearest reasonable size, \nWhich
        means the image tag must include the exact width and height.\n"
      name: _mk_image
      summary: Create attributes for an image and possibly a wrapping anchor
      tests: []
      usage: ''
    public:
    - access: public
      description: 'Also perform lightweight killing of HTML characters: C<\>\<''"&>

'
      name: defang
      summary: Remove characters that would otherwise cause parser evaluation.
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
        lineno: 64
        num: 270
        package: Parse::Template::Web
        result: ''
        summary: ''
        test: '  use Parse::Template::Web;'
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
        lineno: 65
        num: 271
        package: Parse::Template::Web
        result: ''
        summary: ''
        test: '  use Data::Hub;'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
        lineno: 66
        num: 272
        package: Parse::Template::Web
        result: abc
        summary: ''
        test: "  my $p = Parse::Template::Web->new(Data::Hub->new());\n  $p->defang('a[#b]c');"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
        lineno: 69
        num: 273
        package: Parse::Template::Web
        result: abcabc/de
        summary: ''
        test: "  my $p = Parse::Template::Web->new(Data::Hub->new());\n  my $r = $p->defang(['a[#b]c',
          'a<b>c</d>e']);\n  join('', @$r);"
      usage: ''
    - access: public
      description: "\n  [#:http:header 'Name' 'Definition']\n  [#:http:header 'Name'
        'Definition' -override]\n\nWhen -override is given, existing headers with
        the same name\nare removed.\n"
      name: http:header
      summary: Add an HTTP header for output
      tests: []
      usage: ''
    - access: public
      description: ''
      name: is_editing
      summary: Is the page being rendered for an authorized editor
      tests: []
      usage: ''
  name: Parse::Template::Web
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Perl::Class
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Perl::Class::Hash
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::OrderedHash: 0
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Perl::Class::OrderedHash
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Perl::Class::Array
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends: {}
  description: ''
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Perl::Class::Scalar
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests:
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
    lineno: 69
    num: 274
    package: Perl::Class::Scalar
    result: 3:|:1:odd
    summary: ''
    test: "  package Foo;\n  use Perl::Class;\n  use base qw(Perl::Class::Hash);\n
      \ sub new {\n    $_[0]->SUPER::new(1 => 2, 'odd');\n  }\n  1;\n  package main;\n
      \ my $c = Foo->new();\n  $c->{3} = 4;\n  join ':', (keys %$c, '|', sort keys
      %{$c->__});"
  version:
  - 0
  - '1'
  - 0
- depends:
    Carp: 0
    Data::OrderedHash: 0
    Exporter: 0
    Try::Tiny: 0
  description: ''
  export: ''
  export_ok: clone, overlay
  export_tags:
    all: clone, overlay
  methods:
    private: []
    public:
    - access: public
      description: "\nwhere:\n\n\n  $create               Specifies the constructor
        to use for creating new\n                        objects.  Default is: -copy_ref\n
        \   \n        -keep_order     Use Data::OrderedHash for creating hashes\n
        \       -copy_ref       Call C<new> on the source structure reference\n        -pure_perl
        \     Use {}, [], \\'' for creating new objects\n        \\%hash          Provide
        your own constructors\n\nImplemented because the Clone module found on CPAN
        crashes under my mod_perl \nand FastCGI test servers.\n\nThe constructor-hash
        looks like:\n\n\n  our %PerlStructs = (\n    'HASH' => sub {return {};},\n
        \   'ARRAY' => sub {return [];},\n    'SCALAR' => sub {my $s = ''; return
        \\$s},\n  );\n\nThe C<ref()> of the source structure is passed as the first
        argument to the\nconstructor-hash subroutine.\n\n"
      name: clone
      summary: Recursively clone the reference, returning a new reference.
      tests: []
      usage: ''
    - access: public
      description: "@see L</clone> for C<$create> option.\n  -no_clone   Do not clone
        values\n"
      name: overlay
      summary: Overlay one structre on top of another
      tests: []
      usage: ''
  name: Perl::Clone
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Clone.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Exporter: 0
  description: "\nEfficient routine to compare scalar values when the operator is
    variable.  This \nis particularly useful for dynamic patterns, such as those read
    in from a \nconfiguration file, taken from an argument, or specified in a table
    somewhere.\n\n=head2 Motivation\n\nEfficiency and security, invoking eval (as
    C<eval> or C<m//e>) is not an \noption.\n\nIn some situations, the logic is more
    important than the function.  Just like\nwhen you would use C<no warnings>.  For
    this reason these routines simply \nreturn the logical answer when values are
    undefined.\n\nBasic functionality which can be extended.  Okay, it's just nice
    to have some \nsugar some times.  Extending this package with your own comparison
    routines \nshould be straight foward.  A few that we have added are:\n\n  mod
    \      Modulo\n  bw        Stringwise begins-with\n  ew        Stringwise ends-with\n\n=head2
    Notes\n\nBecause one cannot pass modifiers to the regular expression engine, the
    \nfollowing extensions were added:\n\n  =~i       Regular expression match, case
    insensitive\n  !~i       Regular expression does not match, case insensitive\n
    \ eqic      Equal ignoring case\n  neic      Not equal ignoring case\n\n"
  export: ''
  export_ok: compare, sort_compare, sort_keydepth
  export_tags:
    all: compare, sort_compare, sort_keydepth
  methods:
    private:
    - access: private
      description: ''
      name: _either_undef
      summary: Are either operands undefined?
      tests: []
      usage: ''
    - access: private
      description: ''
      name: _both_undef
      summary: Are both operands undefined?
      tests: []
      usage: ''
    public:
    - access: public
      description: "The key is the comparison operator. The value is the subroutine
        which is \nexecuted.\n\nIf you wanted to define an operator named C<opr>,
        you would:\n\n\n  Perl::Comparison::COMPARISONS{'opr'} = sub {\n    # your
        code here\n  };\n\nYour comparison is invoked by:\n\n\n  compare('opr', 'a',
        'b');\n\nAnd your subroutine will be passed C<'a'> and C<'b'>.  In fact, all
        arguments\nare passed, allowing you to write tertiary comparisons, such as:\n\n\n
        \ compare('opr', 'a', 'b', 'c');\n"
      name: '%COMPARISIONS'
      summary: Comparison routines
      tests: []
      usage: ''
    - access: public
      description: "\nSupport runtime comparison when the operator is held as a scalar.\n\nWhere
        C<$comparator> may be one of:\n\n\n  &&        $a and $b are true vlaues\n
        \ ||        $a or $b is a true value\n  eq        Stringwise equal\n  ne        Stringwise
        not equal\n  lt        Stringwise less than\n  le        Stringwise less than
        or equal\n  gt        Stringwise greater than\n  ge        Stringwise greater
        than or equal\n  =~        Regular expression match\n  !~        Regular expression
        does not match\n  cmp       Stringwise less-than, equal-to, or greater-than\n
        \ leg       Alias for cmp (see Perl 6)\n  ==        Numeric equal\n  !=        Numeric
        not equal\n  <         Numeric less than\n  >         Numeric greater than\n
        \ <=        Numeric less than or equal\n  >=        Numeric greater than or
        equal\n  <=>       Numeric less-than, equal-to, or greater-than\n    \n  =~i
        \      Regular expression match, case insensitive\n  !~i       Regular expression
        does not match, case insensitive\n  eqic      Equal ignoring case\n  neic
        \     Not equal ignoring case\n  mod       Modulo\n  bw        Stringwise
        begins-with\n  ew        Stringwise ends-with\n"
      name: compare
      summary: Wrapper for Perl's internal comparison operators.
      tests:
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 125
        num: 275
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''eq'','''',undef);'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 126
        num: 276
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''eq'',''abc'',''abc'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 127
        num: 277
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''ne'',''abc'',''Abc'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 128
        num: 278
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''eq'',''abc'',undef);'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 129
        num: 279
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''!~'',''abc'',''A'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 130
        num: 280
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''=~'',''abc'',''a'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 131
        num: 281
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''=='',1234,1234);'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 132
        num: 282
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''>='',1234,1234);'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 133
        num: 283
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''eqic'',''abc'',''Abc'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 134
        num: 284
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''=='',undef,undef);'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 135
        num: 285
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''=='',0,undef);'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 136
        num: 286
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''!~i'',''abc'',''A'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 137
        num: 287
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''=~i'',''abc'',''A'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 138
        num: 288
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''eqic'',''abc'',''Abc'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 139
        num: 289
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''neic'',''abc'',''Abc'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 140
        num: 290
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''mod'',4,2);'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 141
        num: 291
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''bw'',''abc'',''a'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 142
        num: 292
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''bw'',''abc'',''b'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 143
        num: 293
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''ew'',''abc'',''b'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 144
        num: 294
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  compare(''ew'',''abc'',''c'');'
      usage: ''
    - access: public
      description: 'See also L</compare>

'
      name: sort_compare
      summary: Compare for sorting, returning 1, 0 or -1
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 158
        num: 295
        package: Perl::Comparison
        result: 1;2;10;20
        summary: ''
        test: "  my @numbers = ( 20, 1, 10, 2 );\n  join ';', sort { &sort_compare('<=>',$a,$b)
          } @numbers;"
      usage: ''
    - access: public
      description: 'The key is the solodus (/) character.



'
      name: sort_keydepth
      summary: Sort by the number of nodes in the key
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 180
        num: 296
        package: Perl::Comparison
        result: ''
        summary: ''
        test: '  use Perl::Comparison qw(sort_keydepth);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 182
        num: 297
        package: Perl::Comparison
        result: o/ne;t/w/o;th/r/e/e
        summary: The deepest elements come last
        test: '  join '';'', sort {&sort_keydepth($a, $b)} qw(t/w/o o/ne th/r/e/e);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
        lineno: 186
        num: 298
        package: Perl::Comparison
        result: ;none;o/ne;t/w/o;th/r/e/e
        summary: Those without come after undefined but before those with
        test: "  no warnings 'uninitialized';\n  join ';', sort {&sort_keydepth($a,
          $b)} (qw(t/w/o o/ne none th/r/e/e), undef);"
      usage: ''
  name: Perl::Comparison
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  seealso: ''
  summary: 'Runtime access to perl comparison operators

'
  synopsis: "\n  use Perl::Comparison qw(compare);\n  print compare('eq', 'abc', 'xyz')
    ? \"True\\n\" : \"False\\n\";\n    \n  use Perl::Comparison qw(sort_compare);\n
    \ my @items = qw(The black cat climbed the green tree);\n  sort { &sort_compare('cmp',
    $a, $b) } @items;\n\n"
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Exporter: 0
  description: '

    This is a standard include which C<use>''s and re-exports core packages

    and methods.


'
  export: Dumper, carp, croak, cluck, confess, blessed, time, gettimeofday, tv_interval,
    sleep, stat, max, min, warnf, is_numeric, int_div, str_ref, grep_first, grep_first_index,
    push_uniq, unshift_uniq, index_unescaped, index_match, index_imatch, checksum,
    bytesize, reftype, isa, can, strftime, strptime, compare, sort_compare, sort_keydepth,
    my_opts, clone, overlay
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: '

        When C<:all> is specified, all methods included in the target package''s

        C<@EXPORT_OK> (required) array are used.

'
      name: _reexport
      summary: Use a package, import and export the specified methods.
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Module.pm
        lineno: 16
        num: 299
        package: Perl::Module
        result: ''
        summary: ''
        test: '  use Perl::Module;'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Module.pm
        lineno: 17
        num: 300
        package: Perl::Module
        result: 'Dumper

          blessed

          bytesize

          can

          carp

          checksum

          clone

          cluck

          compare

          confess

          croak

          gettimeofday

          grep_first

          grep_first_index

          index_imatch

          index_match

          index_unescaped

          int_div

          is_numeric

          isa

          max

          min

          my_opts

          overlay

          push_uniq

          reftype

          sleep

          sort_compare

          sort_keydepth

          stat

          str_ref

          strftime

          strptime

          time

          tv_interval

          unshift_uniq

          warnf'
        summary: ''
        test: '  join "\n", sort @Perl::Module::EXPORT;'
      usage: ''
    public: []
  name: Perl::Module
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Module.pm
  seealso: ''
  summary: 'Perl Module Development

'
  synopsis: "\n  use Perl::Module;\n  print \"Perl::Module exports these methods from
    other modules:\\n\\t\";\n  print join(\"\\n\\t\", sort @Perl::Module::EXPORT),
    \"\\n\";\n\n"
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::Hub::Container: 0
    Data::Hub::FileSystem::File: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    Error::Programatic: 0
    Perl::Class: 0
    Perl::Module: 0
    Perl::Util: 0
  description: "\nExtract documentation and test cases from a properly annotated file.\n\nShortcut
    POD annotations:\n\nThese C<=pod> annotations must begin the line with no leading
    white space.\n\n  =pod:summary        The part which comes after the package NAME\n
    \ =pod:synopsis       The SYNOPSIS section\n  =pod:description    The DESCRIPTION
    section\n  =pod:seealso        The SEE ALSO section\n  =pod:sub            Documentation
    for a subroutine\n\nExample:\n\n  package Local::Example;\n    \n  # say_hello
    - Print a greeting\n  # The normal way to document a method\n  sub say_hello {\n
    \   printf \"%s\\n\", 'Hello';\n  }\n    \n  sub say_goodbye {\n    printf \"%s\\n\",
    'Goodbye';\n  }\n    \n  1;\n    \n  =pod:summary\n    \n    An example module\n
    \   \n  =pod:synopsis\n    \n    use Local::Example;\n    \n  =pod:description\n
    \   \n  This example module does nothing of interest.\n    \n  =pod:seealso\n
    \   \n  The L<Perl::ModuleInfo> module\n    \n  =pod:sub say_goodbye - Print a
    parting\n    \n  Another way to write the documentation for a method.\n    \n
    \ =cut\n\nTest cases:\n\nFor test written with POD annotations C<=test> and C<=result>,
    the C<=result>\nbody must begin with two and only two spaces. Any additional leading
    spaces\nare considered part of the actual test result.\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: Perl::ModuleInfo
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/ModuleInfo.pm
  seealso: ''
  summary: "\n  Extract documentation and test cases from a properly annotated file\n\n"
  synopsis: "\n  use Perl::ModuleInfo;\n  my $info = Perl::ModuleInfo->new();\n  $info->parse('./lib',
    'Local/Example.pm');\n  $info->parse('./lib', 'Local/Sample.pm');\n\n"
  tests: []
  version:
  - '1'
  - '3'
  - 0
- depends:
    Carp: 0
    Exporter: 0
  description: ''
  export: ''
  export_ok: my_opts
  export_tags:
    all: my_opts
  methods:
    private:
    - access: private
      description: 'If the argument is not an option key, the return is undef.

'
      name: _parse_option
      summary: Get the option key (and value) from an argument array item.
      tests: []
      usage: ''
    public:
    - access: public
      description: ''
      name: opts
      summary: Subroutine parameter parser
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Options.pm
        lineno: 29
        num: 301
        package: Perl::Options
        result: a,b;opt1,opt2,opt3
        summary: ''
        test: "  my $sub = sub {\n    my ($opts, @argv) = my_opts(\\@_);\n    my $ret
          = join(',', sort(@_));\n    $ret .= ';' . join(',', sort keys %$opts);\n
          \   return $ret;\n  };\n  &$sub('a', 'b', '-opt1', -opt2 => 'See', '-opt3=0');"
      usage: ''
  name: Perl::Options
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Options.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Carp: 0
    Compress::Zlib: 0
    DateTime: 0
    DateTime::TimeZone: 0
    Error::Logical: 0
    Error::Programatic: 0
    Error::Simple: 0
    Exporter: 0
    MIME::Base64: 0
    Perl::Options: 0
    Scalar::Util: 0
    Time::Piece: 0
    Time::Regex: 0
    Time::Regex::Strftime: 0
    Time::Regex::Strptime: 0
    constant: 0
  description: '

'
  export: ''
  export_ok: ONE_KB, ONE_MB, ONE_GB, ONE_TB, ONE_PB, ONE_EB, ONE_ZB, ONE_YB, EXPR_NUMERIC,
    warnf, is_numeric, int_div, str_ref, grep_first, grep_first_index, push_uniq,
    unshift_uniq, index_unescaped, index_match, index_imatch, checksum, bytesize,
    reftype, isa, can, strftime, strptime
  export_tags:
    all: ONE_KB, ONE_MB, ONE_GB, ONE_TB, ONE_PB, ONE_EB, ONE_ZB, ONE_YB, EXPR_NUMERIC,
      warnf, is_numeric, int_div, str_ref, grep_first, grep_first_index, push_uniq,
      unshift_uniq, index_unescaped, index_match, index_imatch, checksum, bytesize,
      reftype, isa, can, strftime, strptime
    const: ONE_KB, ONE_MB, ONE_GB, ONE_TB, ONE_PB, ONE_EB, ONE_ZB, ONE_YB, EXPR_NUMERIC
    std: warnf, is_numeric, int_div, str_ref, grep_first, grep_first_index, push_uniq,
      unshift_uniq, index_unescaped, index_match, index_imatch, checksum, bytesize,
      reftype, isa, can, strftime, strptime
  methods:
    private:
    - access: private
      description: "where:\n\n  $str, \\$str   Search string\n  $re           Substring
        expression\n  $pos          Start position (use undef, not zero unless you
        mean it)\n  $ic           Ignore case (boolean)\n"
      name: _index_match
      summary: Common implementation for L</index_match> and L</index_imatch>
      tests: []
      usage: ''
    public:
    - access: public
      description: "\n  ONE_KB # kilo/kibi\n  ONE_MB # mega/mebi\n  ONE_GB # giga/gibi\n
        \ ONE_TB # tera/tebi\n  ONE_PB # peta/pebi\n  ONE_EB # exa/exbi\n  ONE_ZB
        # zetta/zebi\n  ONE_YB # yotta/yobi\n\nSee also: L</bytesize>, L<http://en.wikipedia.org/wiki/Byte>\n"
      name: :const
      summary: Byte size constants
      tests: []
      usage: ''
    - access: public
      description: ''
      name: str_ref
      summary: Create a scalar reference
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 92
        num: 303
        package: Perl::Util
        result: a
        summary: ''
        test: '  my $a = str_ref("a"); $$a;'
      usage: ''
    - access: public
      description: 'See also: C<sprintf>

'
      name: warnf
      summary: Akin to printf
      tests: []
      usage: ''
    - access: public
      description: "We use a (slower) regular expression technique because performing
        an eval \nintroduces inconspicuous security considerations.\n"
      name: is_numeric
      summary: Is the given string a numeric
      tests:
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 128
        num: 304
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''-1'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 129
        num: 305
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''0'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 130
        num: 306
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''+1'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 131
        num: 307
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''3.14'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 132
        num: 308
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''6.02214E23'');'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 133
        num: 309
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''6.626068e-34'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 134
        num: 310
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''3.1.4'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 135
        num: 311
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric('''');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 136
        num: 312
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(''three'');'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 137
        num: 313
        package: Perl::Util
        result: ''
        summary: ''
        test: '  is_numeric(undef);'
      usage: ''
    - access: public
      description: 'Returns an array with the number of times the divisor is contained
        in the

        dividend, and the remainder.

'
      name: int_div
      summary: Integer division
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 151
        num: 314
        package: Perl::Util
        result: 1r1
        summary: 3 divided by 2
        test: '  join(''r'',int_div(3,2));'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 152
        num: 315
        package: Perl::Util
        result: 1r1
        summary: 3.9 divided by 2 (does not round)
        test: '  join(''r'',int_div(3.9,2));'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 153
        num: 316
        package: Perl::Util
        result: ''
        summary: divide by zero
        test: '  int_div(3,0);'
      - comparator: abort
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 154
        num: 317
        package: Perl::Util
        result: ''
        summary: not numeric
        test: '  int_div(''three'',1);'
      usage: ''
    - access: public
      description: ''
      name: grep_first
      summary: Like grep, but stop processing after the first true value
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 167
        num: 318
        package: Perl::Util
        result: apple
        summary: first item with an \'a\' in it
        test: '  grep_first {/a/} qw(apple banana cherry);'
      usage: ''
    - access: public
      description: ''
      name: grep_first_index
      summary: Like grep_first, but return the index
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 185
        num: 319
        package: Perl::Util
        result: '0'
        summary: index of first item with an \'a\' in it
        test: '  grep_first_index {/a/} qw(apple banana cherry);'
      usage: ''
    - access: public
      description: ''
      name: push_uniq
      summary: Push a value (or values) unless they exist
      tests: []
      usage: ''
    - access: public
      description: ''
      name: unshift_uniq
      summary: Unshift a value (or values) unless they exist
      tests: []
      usage: ''
    - access: public
      description: 'See also: C<index>

'
      name: index_unescaped
      summary: Locate unescaped character in string
      tests: []
      usage: ''
    - access: public
      description: "\nIndex is -1 I<One less than the base C<$[>> when C<$expression>
        is not found.\n\nIn array context, C<($index, $match)> is returned, where:\n\n\n
        \ $index        Index of expression\n  $match        Matched substring\n"
      name: index_match
      summary: Index of expression within a string
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 252
        num: 320
        package: Perl::Util
        result: '4'
        summary: ''
        test: '  index_match("abracadabra", "[cd]")'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 253
        num: 321
        package: Perl::Util
        result: '3'
        summary: ''
        test: '  index_match("abracadabra", "a", 3)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 254
        num: 322
        package: Perl::Util
        result: '-1'
        summary: ''
        test: '  index_match("abracadabra", "d{2,2}")'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 255
        num: 323
        package: Perl::Util
        result: '4'
        summary: ''
        test: "  my ($p, $str) = index_match(\"scant\", \"can\");\n  $p + length($str);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 257
        num: 324
        package: Perl::Util
        result: '7'
        summary: ''
        test: '  index_match("foobar foo bar", ''\bfoo\b'') # zero-width test'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 258
        num: 325
        package: Perl::Util
        result: '-1'
        summary: ''
        test: '  index_match("foobar foo bar", ''Bar'') # no-match'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 259
        num: 326
        package: Perl::Util
        result: '0'
        summary: ''
        test: '  index_match("aa", "a")'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 260
        num: 327
        package: Perl::Util
        result: '1'
        summary: ''
        test: '  index_match("aa", "a", 1)'
      usage: ''
    - access: public
      description: 'See L</index_match>

'
      name: index_imatch
      summary: Index of expression within a string (case insensitive)
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 271
        num: 328
        package: Perl::Util
        result: '3'
        summary: ''
        test: '  index_imatch("foobar foo bar", ''Bar'') # Case insensitive match'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 272
        num: 329
        package: Perl::Util
        result: '2'
        summary: ''
        test: '  index_imatch(" b\n a", ''\s*a'') # Case insensitive match'
      usage: ''
    - access: public
      description: 'Parameters are utf8 encoded to avoid wide character issues.

'
      name: checksum
      summary: Compute a checksum
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 302
        num: 330
        package: Perl::Util
        result: '1625030915'
        summary: ''
        test: '  checksum(''“Hello”'', ''world'');'
      usage: ''
    - access: public
      description: "\noptions:\n\n\n  -precision => 3     Use Three decimal places.\n
        \ -binary_symbol      Use binary symbol (KiB instead of KB)\n"
      name: bytesize
      summary: Convert bytes to human-readable byte size
      tests:
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 321
        num: 331
        package: Perl::Util
        result: 10 B
        summary: ''
        test: '  bytesize(10)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 322
        num: 332
        package: Perl::Util
        result: 10.77 KB
        summary: ''
        test: '  bytesize(11028)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 323
        num: 333
        package: Perl::Util
        result: 953.6743 MB
        summary: ''
        test: '  bytesize(1000 ** 3, -precision => 4)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 324
        num: 334
        package: Perl::Util
        result: 1 GB
        summary: ''
        test: '  bytesize(2 ** 30)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 325
        num: 335
        package: Perl::Util
        result: 512 PiB
        summary: ''
        test: '  bytesize(2 ** 59, -binary_symbol)'
      usage: ''
    - access: public
      description: '

        We differentiate between C<undef> and scalar input by only returning C<undef>

        when the unknown is undefined.

'
      name: reftype
      summary: Extends Scalar::Util::reftype
      tests:
      - comparator: defined
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 357
        num: 336
        package: Perl::Util
        result: ''
        summary: ''
        test: '  reftype(undef)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 358
        num: 337
        package: Perl::Util
        result: ''
        summary: ''
        test: '  reftype('''')'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 359
        num: 338
        package: Perl::Util
        result: HASH
        summary: ''
        test: '  reftype({})'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 360
        num: 339
        package: Perl::Util
        result: ARRAY
        summary: ''
        test: '  reftype([])'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 361
        num: 340
        package: Perl::Util
        result: SCALAR
        summary: ''
        test: '  my $a = ''''; reftype(\$a)'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 362
        num: 341
        package: Perl::Util
        result: REF
        summary: ''
        test: '  my $a = ''''; my $b = \$a; reftype(\$b)'
      usage: ''
    - access: public
      description: ''
      name: isa
      summary: Static method which provides UNIVERSAL->isa functionality
      tests:
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 374
        num: 342
        package: Perl::Util
        result: ''
        summary: ''
        test: '  isa({}, ''HASH'')'
      - comparator: 'true'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
        lineno: 375
        num: 343
        package: Perl::Util
        result: ''
        summary: ''
        test: '  isa([], ''ARRAY'')'
      usage: ''
    - access: public
      description: ''
      name: can
      summary: Static method which provides UNIVERSAL->can functionality
      tests: []
      usage: ''
    - access: public
      description: '

        These values will be used by Time::Piece to both parse (strptime) and format

        (strftime) a given time.

'
      name: '%Time_Formats'
      summary: Alias and values in strftime format.
      tests: []
      usage: ''
  name: Perl::Util
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  seealso: ''
  summary: 'Perl Extensions

'
  synopsis: "\n  use Perl::Util qw(grep_first);\n  grep_first {$_ eq 'b'} qw(a b b
    c);\n\n"
  tests:
  - comparator: abort
    invert: 1
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
    lineno: 58
    num: 302
    package: Perl::Util
    result: ''
    summary: Load this module
    test: '  use Perl::Util qw(:all);'
  version:
  - 0
  - 0
  - 0
- depends:
    Exporter: 0
    Time::Regex: 0
  description: ''
  export: ''
  export_ok: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
  export_tags:
    all: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
    formats: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
  methods:
    private: []
    public: []
  name: Time::Regex::Strftime
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Time/Regex/Strftime.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Exporter: 0
    Time::Regex: 0
    Time::Regex::Strftime: 0
  description: ''
  export: ''
  export_ok: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
  export_tags:
    all: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
    formats: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
  methods:
    private: []
    public: []
  name: Time::Regex::Strptime
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Time/Regex/Strptime.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Exporter: 0
    I18N::Langinfo: 0
  description: ''
  export: ''
  export_ok: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
  export_tags:
    all: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
    formats: FMT_UTC, FMT_GMT, FMT_RFC822, FMT_RFC3339, FMT_HIRES
  methods:
    private: []
    public: []
  name: Time::Regex
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Time/Regex.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
- depends:
    Data::OrderedHash: 0
    Perl::Module: 0
    Tie::Hash: 0
  description: '

'
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private: []
    public: []
  name: WWW::Livesite::Args
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Livesite/Args.pm
  seealso: ''
  summary: 'Case insensitive query string arguemnts

'
  synopsis: '

'
  tests:
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Livesite/Args.pm
    lineno: 86
    num: 344
    package: WWW::Livesite::Args
    result: hello world
    summary: ''
    test: "  use WWW::Livesite::Args;\n  my $qs = WWW::Livesite::Args->new('msg=hello%20world');\n
      \ die if defined $qs->{MSG};\n  return $qs->{msg};"
  - comparator: match
    invert: 0
    lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Livesite/Args.pm
    lineno: 93
    num: 345
    package: WWW::Livesite::Args
    result: 1|2
    summary: ''
    test: "  use WWW::Livesite::Args;\n  my $qs = WWW::Livesite::Args->new('a=1&a=2');\n
      \ my $a = $qs->{a};\n  return join '|', @$a;"
  version:
  - 0
  - 0
  - 0
- depends:
    Data::OrderedHash: 0
    Perl::Module: 0
    Tie::Hash: 0
  description: "\n  #!/usr/bin/perl\n  use strict;\n  use warnings FATAL => qw(all);\n
    \ use WWW::Livesite::Headers;\n    \n  my $str = <<__end;\n  Pragma: no-cache\n
    \ Server: lws\n  Date: now\n  Content-Type: text/plain\n  __end\n    \n  # Create
    a new headers object\n  my $h = WWW::Livesite::Headers->new();\n    \n  # Parse
    the above headers (this could also have been done by\n  # passing $str to the
    constructor).\n  $h->parse($str);\n    \n  # Set a new header\n  $$h{'Cache-control'}
    = 'no-cache, no-store, max-age=0';\n    \n  # Set the special content-type header
    (will always output last)\n  $$h{'content-Type'} = 'text/html';\n    \n  # Setting
    a value for one which exists forks it into an array,\n  # meaning there are two
    header fields.\n  $$h{'Pragma'} = 'repeat';\n    \n  # Set a value unless it already
    exists\n  $$h{'Server'} ||= 'MyServer';\n    \n  # Override a value (avoid the
    forking behavior by assigning an\n  # array).  If the array were to have two items,
    it would result\n  # in two header fields.\n  $$h{'Date'} = ['12/30/73'];\n    \n
    \ # Set another header (and notice that it is upper-cased on output).\n  $$h{'expires'}
    = '0';\n    \n  # Output the string.  Notice that the fields are printed in FIFO
    order as\n  # to when their key was added to the hash, with the exception of \n
    \ # 'Content-Type', which is always last (and gets an extra newline).\n  print
    $h->to_string, \"\\n\";\n    \n  # The as_array method provides an entry for each
    header.  The entry is\n  # an array reference with to items, the name and its
    definition.\n  for ($h->as_array) {\n    my ($k, $v) = @$_;\n    print \"<$k>$v</$k>\\n\";\n
    \ }\n\nSample output of the above\n\n  Pragma: no-cache\n  Pragma: repeat\n  Server:
    lws\n  Date: 12/30/73\n  Cache-Control: no-cache, no-store, max-age=0\n  Expires:
    0\n  Content-Type: text/html\n    \n  <Pragma>no-cache</Pragma>\n  <Pragma>repeat</Pragma>\n
    \ <Server>lws</Server>\n  <Date>12/30/73</Date>\n  <Cache-Control>no-cache, no-store,
    max-age=0</Cache-Control>\n  <Expires>0</Expires>\n  <Content-Type>text/html</Content-Type>\n\n\n"
  export: ''
  export_ok: ''
  export_tags: {}
  methods:
    private:
    - access: private
      description: 'The assignment operator

'
      name: TODO
      summary: Wrap (subclass) HTTP::Headers
      tests: []
      usage: ''
    public: []
  name: WWW::Livesite::Headers
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Livesite/Headers.pm
  seealso: ''
  summary: 'HTTP Header Hash

'
  synopsis: "\n  use WWW::Livesite::Headers;\n  my $h = WWW::Livesite::Headers->new();\n
    \ $h->parse($header_str);\n  $$h{'Pragma'} = 'no-cache';\n  print $h->to_string,
    \"\\n\";\n  for ($h->as_array) {\n    printf \"%s: %s\\n\", @$_;\n  }\n\n"
  tests: []
  version:
  - 0
  - '1'
  - 0
- depends:
    Data::Hub: 0
    Data::Hub::Util: 0
    Error::Logical: 0
    Error::Programatic: 0
    Image::Size: 0
    Parse::Template::Standard: 0
    Perl::Module: 0
    Perl::Options: 0
    Try::Tiny: 0
  description: ''
  export: ''
  export_ok: props_to_resize_str, resize_str_to_props, image_convert, image_dims,
    image_size
  export_tags: {}
  methods:
    private: []
    public:
    - access: public
      description: "\noptions: See L</image_dims>\n\n  -out_dir    => $abs_path      #
        default is same dir as $path\n  -grayscale  => 1              # convert to
        grayscale\n  -watermark  => <Hash>         # watermark image\n  -maxdpi     =>
        1              # keep original image path/size\n  -resize    => WxH/wxh         #
        Resize to max W by H and min w by h\n\n"
      name: image_convert
      summary: Create a file which satisfies the specified geometry
      tests: []
      usage: ''
    - access: public
      description: "\nA resize string like this:\n\n\n    800x600/480x320\n\nBecomes\n\n
        \   max_x => 800\n    max_y => 600\n    min_x => 480\n    min_y => 320\n\nResize
        strings may omit dimensions, in which case they will default to zero\n\n    800
        \                  max_x => 800\n    800x600               max_x => 800, max_y
        => 600\n    800x600/480           max_x => 800, max_y => 600, min_x => 480\n
        \   800/480               max_x => 800, min_x => 480\n\nA shorthand of a single
        number ending with a caret (^) indicates all the\ndimensions are the same,
        and we a producing a zoomed (as opposed to a \nletter-box image).\n\n    100^
        \                 same as 100x100/100x100\n\n"
      name: resize_str_to_props
      summary: Translate a resize string into a hash
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 197
        num: 346
        package: WWW::Misc::Image
        result: ''
        summary: ''
        test: '  use WWW::Misc::Image qw(resize_str_to_props);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 198
        num: 347
        package: WWW::Misc::Image
        result: max_x=800;max_y=0;min_x=0;min_y=0
        summary: ''
        test: "  my $props = resize_str_to_props('800');\n  join(';', map { $_ . '='
          . $$props{$_} } sort keys %$props);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 202
        num: 348
        package: WWW::Misc::Image
        result: max_x=800;max_y=600;min_x=0;min_y=0
        summary: ''
        test: "  my $props = resize_str_to_props('800x600');\n  join(';', map { $_
          . '=' . $$props{$_} } sort keys %$props);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 206
        num: 349
        package: WWW::Misc::Image
        result: max_x=800;max_y=600;min_x=480;min_y=0
        summary: ''
        test: "  my $props = resize_str_to_props('800x600/480');\n  join(';', map
          { $_ . '=' . $$props{$_} } sort keys %$props);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 210
        num: 350
        package: WWW::Misc::Image
        result: max_x=800;max_y=0;min_x=480;min_y=0
        summary: ''
        test: "  my $props = resize_str_to_props('800/480');\n  join(';', map { $_
          . '=' . $$props{$_} } sort keys %$props);"
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 214
        num: 351
        package: WWW::Misc::Image
        result: flags=z;max_x=100;max_y=0;min_x=0;min_y=0
        summary: ''
        test: "  my $props = resize_str_to_props('100/z');\n  join(';', map { $_ .
          '=' . $$props{$_} } sort keys %$props);"
      usage: ''
    - access: public
      description: '

        This is the inverse of L<resize_str_to_props>.

'
      name: props_to_resize_str
      summary: Create a resize-string from hash properties.
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 244
        num: 352
        package: WWW::Misc::Image
        result: ''
        summary: ''
        test: '  use WWW::Misc::Image qw(props_to_resize_str);'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 245
        num: 353
        package: WWW::Misc::Image
        result: '800'
        summary: ''
        test: '  props_to_resize_str({max_x => 800});'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 246
        num: 354
        package: WWW::Misc::Image
        result: 800x600
        summary: ''
        test: '  props_to_resize_str({max_x => 800, max_y => 600});'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 247
        num: 355
        package: WWW::Misc::Image
        result: 800/480
        summary: ''
        test: '  props_to_resize_str({max_x => 800, min_x => 480});'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 248
        num: 356
        package: WWW::Misc::Image
        result: 100x100/100x100
        summary: ''
        test: '  props_to_resize_str({max_x => 100, max_y => 100,min_x => 100, min_y
          => 100});'
      - comparator: match
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 250
        num: 357
        package: WWW::Misc::Image
        result: 100/z
        summary: ''
        test: '  props_to_resize_str({max_x => 100, flags => ''z''});'
      usage: ''
    - access: public
      description: "\noptions:\n\n\n  -resize=WxH/wxh   Resize to max W by H and min
        w by h\n  --or--\n  -max_x=n          Maximum width\n  -max_y=n          Maximum
        height\n  -min_x=n          Minimum width\n  -min_y=n          Minimum height\n
        \   \n  my ($w,$h) = image_dims( \"/images/laura.jpg\", -max_x => 50, -max_y
        => 50 );\n  my ($w,$h) = image_dims( \"/images/laura.jpg\", -resize => '50x50'
        );\n\nZoomed image:\n\n\n  my ($w,$h,$z) = image_dims( \"/images/laura.jpg\",
        -resize => '50^' );\n\n"
      name: image_dims
      summary: Get image dimensions
      tests:
      - comparator: abort
        invert: 1
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 301
        num: 358
        package: WWW::Misc::Image
        result: ''
        summary: ''
        test: '  use WWW::Misc::Image qw(image_dims);'
      - comparator: 'false'
        invert: 0
        lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
        lineno: 302
        num: 359
        package: WWW::Misc::Image
        result: ''
        summary: ''
        test: '  image_dims("/foo");'
      usage: ''
  name: WWW::Misc::Image
  path: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  seealso: ''
  summary: ''
  synopsis: ''
  tests: []
  version:
  - 0
  - 0
  - 0
tests:
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Algorithm/KeyGen.pm
  lineno: 56
  num: 1
  package: Algorithm::KeyGen
  result: ''
  summary: Create a new KeyGen
  test: "  use Algorithm::KeyGen; \n  Algorithm::KeyGen->new(9, 'MyCharset');"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Algorithm/KeyGen.pm
  lineno: 177
  num: 2
  package: Algorithm::KeyGen
  result: ''
  summary: ''
  test: "  use Algorithm::KeyGen qw($KeyGen);\n  for (1 .. 100) {\n    die unless
    $KeyGen->validate($KeyGen->create());\n  }"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 15
  num: 3
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: '  use Data::CompositeHash;'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 16
  num: 4
  package: Data::CompositeHash
  result: ''
  summary: no default hash provided
  test: '  my $ch = Data::CompositeHash->new();'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 31
  num: 5
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h2 = {a=>'a2'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->shift;\n
    \ $ch->{a};"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 49
  num: 6
  package: Data::CompositeHash
  result: a1
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2'};\n  my $ch = Data::CompositeHash->new($h2);\n
    \ $ch->unshift($h1);\n  $ch->{a};"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 68
  num: 7
  package: Data::CompositeHash
  result: a2
  summary: ''
  test: "  my $h2 = {a=>'a2'};\n  my $h3 = {a=>'a3'};\n  my $ch = Data::CompositeHash->new($h2);\n
    \ $ch->push($h3);\n  $ch->{a};"
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 87
  num: 8
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h2 = {a=>'a2'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->pop;\n
    \ $ch->{a};"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 121
  num: 9
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
    b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
    \ $ch->push($h3);\n  # We now have a composite stack with prescedence: $h1, $h2,
    $h3\n  # Where $h2 is the default hash\n  $ch->{a} = 'AA';\n  $ch->{b} = 'BB';\n
    \ $ch->{c} = 'CC';\n  $ch->{d} = 'DD';\n  die unless $h1->{a} eq 'AA';\n  die
    unless $h2->{b} eq 'BB';\n  die unless $h3->{c} eq 'CC';\n  die unless $h2->{d}
    eq 'DD'; # set on default hash b/c 'd' did not exist"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 157
  num: 10
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
    b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
    \ $ch->push($h3);\n  # We now have a composite stack with prescedence: $h1, $h2,
    $h3\n  # Where $h2 is the default hash\n  die unless $ch->{a} eq 'a1';\n  die
    unless $ch->{b} eq 'b2';\n  die unless $ch->{c} eq 'c3';\n  die unless ref($ch->{'/'});"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 192
  num: 11
  package: Data::CompositeHash
  result: a1b2c3
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
    b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
    \ $ch->push($h3);\n  join '', sort values %$ch;"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 213
  num: 12
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
    b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
    \ $ch->push($h3);\n  die unless exists $$ch{a};\n  die unless exists $$ch{b};\n
    \ die unless exists $$ch{c};\n  die if exists $$ch{d};"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 234
  num: 13
  package: Data::CompositeHash
  result: a2b3
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
    b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
    \ $ch->push($h3);\n  delete $ch->{a};\n  delete $ch->{b};\n  delete $ch->{c};\n
    \ join '', sort values %$ch;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 255
  num: 14
  package: Data::CompositeHash
  result: a2b2
  summary: ''
  test: "  my $h1 = {a=>'a1'};\n  my $h2 = {a=>'a2', b=>'b2'};\n  my $h3 = {a=>'a3',
    b=>'b3', c=>'c3'};\n  my $ch = Data::CompositeHash->new($h2);\n  $ch->unshift($h1);\n
    \ $ch->push($h3);\n  %$ch = ();\n  join '', sort values %$ch;"
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 273
  num: 15
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h2 = {a=>'a2', b=>'b2'};\n  my $ch = Data::CompositeHash->new($h2);\n
    \ scalar(%$ch);"
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 278
  num: 16
  package: Data::CompositeHash
  result: ''
  summary: ''
  test: "  my $h2 = {a=>'a2', b=>'b2'};\n  my $ch = Data::CompositeHash->new($h2);\n
    \ $ch->pop;\n  scalar(%$ch);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/CompositeHash.pm
  lineno: 289
  num: 17
  package: Data::CompositeHash
  result: 'argon

    banana

    cherry

    dark brown

    --

    aluminium

    apple

    --

    cantelope

    cyan

    --

    edible fruit'
  summary: ''
  test: "  use Data::CompositeHash;\n  my $h1 = {\n    'a' => 'argon',\n  };\n  my
    $h2 = {\n    'a' => 'apple',\n    'b' => 'banana',\n    'c' => 'cherry',\n  };\n
    \ my $h3 = {\n    'c' => 'cyan',\n    'd' => 'dark brown',\n  };\n  my $result
    = '';\n  # Create a composite hash, using $h2 as the default hash\n  my $ch =
    Data::CompositeHash->new($h2);\n  # Add $h1 as a hash which will overried values
    in $h2\n  $ch->unshift($h1);\n  # Add $h3 as a hash with the least prescedence\n
    \ $ch->push($h3);\n  # Fetch some values\n  $result .= $ch->{a} . \"\\n\";\n  $result
    .= $ch->{b} . \"\\n\";\n  $result .= $ch->{c} . \"\\n\";\n  $result .= $ch->{d}
    . \"\\n\";\n  # Set an ambiguous value\n  $result .= \"--\\n\";\n  $ch->{a} =
    'aluminium';\n  $result .= $h1->{a} . \"\\n\"; # contains new value\n  $result
    .= $h2->{a} . \"\\n\"; # not touched\n  # Set an ambiguous value\n  $result .=
    \"--\\n\";\n  $ch->{c} = 'cantelope';\n  $result .= $h2->{c} . \"\\n\"; # contains
    new value\n  $result .= $h3->{c} . \"\\n\"; # not touched\n  # Setting a value
    which is not defined in any hash sets\n  # it on the defalut hash\n  $result .=
    \"--\\n\";\n  $ch->{e} = 'edible fruit';\n  $result .= $h2->{e};"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
  lineno: 73
  num: 18
  package: Data::Format::Hash
  result: ''
  summary: ''
  test: '  use Data::Format::Hash qw(hf_parse);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
  lineno: 74
  num: 19
  package: Data::Format::Hash
  result: biz
  summary: Parse a simple nested collection
  test: "  my $d = q(\n  baz => biz\n  foo => %{\n  bar => @{\n  tender\n  stool\n
    \ }\n  }\n  );\n  my $h = hf_parse(\\$d);\n  $$h{'baz'};"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
  lineno: 315
  num: 20
  package: Data::Format::Hash
  result: ''
  summary: ''
  test: '  use Data::Format::Hash qw(hf_format);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/Hash.pm
  lineno: 316
  num: 21
  package: Data::Format::Hash
  result: "foo => %{\n  bar => @{\n    tender\n    stool\n  }\n}"
  summary: Format a simple nested collection
  test: "  my $d = {foo=>{bar=>['tender','stool']}};\n  hf_format($d)"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/HexString.pm
  lineno: 15
  num: 22
  package: Data::Format::HexString
  result: Dogs_0x20__0x28_Waters_0x2c__0x20_Gilmour_0x29__0x20_17_0x3a_06
  summary: ''
  test: "  use Data::Format::HexString qw(:all);\n  hexstr_format( 'Dogs (Waters,
    Gilmour) 17:06' );"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/HexString.pm
  lineno: 29
  num: 23
  package: Data::Format::HexString
  result: Dogs (Waters, Gilmour) 17:06
  summary: ''
  test: '  hexstr_parse(''Dogs_0x20__0x28_Waters_0x2c__0x20_Gilmour_0x29__0x20_17_0x3a_06'');'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Format/XFR.pm
  lineno: 205
  num: 24
  package: Data::Format::XFR
  result: ''
  summary: ''
  test: "  use Data::Format::XFR;\n  use Data::OrderedHash;\n  my $h = Data::OrderedHash->new(\n
    \   a => ['alpha', 'beta', 'copper'],\n    b => {\n      one => 1,\n    },\n    c
    => 'charlie',\n  );\n  my $xfr = Data::Format::XFR->new('base64');\n  my $known
    = '%{YQ==@{${YWxwaGE=}${YmV0YQ==}${Y29wcGVy}}Yg==%{b25l${MQ==}}Yw==${Y2hhcmxpZQ==}}';\n
    \ my $str = $xfr->format($h);\n  die \"format error:\\nstr: $str\\n!= : $known\"
    unless $str eq $known;\n  my $h2 = $xfr->parse($str);\n  die 'parse error' unless
    $h2->{a}[1] eq $h->{a}[1];"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Address.pm
  lineno: 33
  num: 25
  package: Data::Hub::Address
  result: ''
  summary: ''
  test: "    \n  use strict;\n  use Data::Hub::Address;\n  my $a = Data::Hub::Address->new(\"/b/c/d\");\n
    \ die $a->to_string unless '/b/c/d' eq $a->to_string;\n  die $a->first unless
    '' eq $a->first;\n  die $a->last unless 'd' eq $a->last;\n  $a->pop;\n  die unless
    '/b/c' eq $a->to_string;\n  $a->push(\"D\");\n  die unless '/b/c/D' eq $a->to_string;\n
    \ $a->shift;\n  die unless 'b/c/D' eq $a->to_string;\n  $a->unshift('A');\n  die
    unless 'A/b/c/D' eq $a->to_string;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 208
  num: 26
  package: Data::Hub::Courier
  result: abc
  summary: Append to an array
  test: "  my $h = {g=>[qw(a b)]};\n  Data::Hub::Courier::append($h, '/g', 'c');\n
    \ join('', @{$$h{g}});"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 213
  num: 27
  package: Data::Hub::Courier
  result: abc
  summary: Append to a hash
  test: "  my $h = {g=>Data::OrderedHash->new(a => 1, b => 2)};\n  Data::Hub::Courier::append($h,
    '/g', c => 3);\n  join('', keys %{$$h{g}});"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 218
  num: 28
  package: Data::Hub::Courier
  result: abc
  summary: Append to a scalar
  test: "  my $h = {g=>str_ref('ab')};\n  Data::Hub::Courier::append($h, '/g', 'c');\n
    \ ${$$h{g}};"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 255
  num: 29
  package: Data::Hub::Courier
  result: abc
  summary: Prepend to an array
  test: "  my $h = {g=>[qw(b c)]};\n  Data::Hub::Courier::prepend($h, '/g', 'a');\n
    \ join('', @{$$h{g}});"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 260
  num: 30
  package: Data::Hub::Courier
  result: abc
  summary: Prepend to a hash
  test: "  my $h = {g=>Data::OrderedHash->new(b => 2, c => 3)};\n  Data::Hub::Courier::prepend($h,
    '/g', a => 1);\n  join('', keys %{$$h{g}});"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 265
  num: 31
  package: Data::Hub::Courier
  result: abc
  summary: Prepend to a scalar
  test: "  my $h = {g=>str_ref('bc')};\n  Data::Hub::Courier::prepend($h, '/g', 'a');\n
    \ ${$$h{g}};"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Courier.pm
  lineno: 385
  num: 32
  package: Data::Hub::Courier
  result: Hello World!
  summary: ''
  test: "  use Data::Hub::Courier;\n  my $h = {\n    A => {\n      I => [\n        'Hello'\n
    \     ],\n    },\n  };\n  Data::Hub::Courier::set($h, '/A/I/1', 'World!');\n  my
    $a = Data::Hub::Courier::get($h, '/A/I');\n  join ' ', @$a;"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 410
  num: 33
  package: Data::Hub::Query
  result: ''
  summary: ''
  test: "  # This test case simply sets up the test data and subroutine for running\n
    \ # subsequent test queries.\n  use Data::Hub::Util qw(:all);\n  use Data::Format::Hash
    qw(hf_format hf_parse);\n  use Data::OrderedHash;\n  my $ttt_data = curry(hf_parse('\n
    \   array => @{\n      a\n      b\n      c\n      ab\n      abc\n    }\n    hash
    => %{\n      a => Alpha\n      b => Beta\n      c => Charlie\n    }\n    array_of_hashes
    => @{\n      %{\n        name => a\n        text => Alpha\n      }\n      %{\n
    \       name => b\n        text => Beta\n      }\n      %{\n        name => c\n
    \       text => Charlie\n      }\n    }\n    hash_of_hashes => %{\n      a =>
    %{\n        text => Alpha\n        num => 3\n      }\n      b => %{\n        text
    => Beta\n        num => 2\n      }\n      c => %{\n        text => Charlie\n        num
    => 1\n      }\n    }\n  '));\n  # The test data is curried to provide the get
    method of Data::Hub::Courier\n  sub ttt_query {\n    my $q = shift;\n    my $r
    = $ttt_data->get($q);\n    return unless defined $r;\n    my $ref = ref($r);\n
    \   $ref ? hf_format({$ref => $r}) : $r;\n  }"
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 481
  num: 34
  package: Data::Hub::Query
  result: ''
  summary: ''
  test: "  # Use an invalid index\n  ttt_query('array/{?:fail}');"
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 486
  num: 35
  package: Data::Hub::Query
  result: ''
  summary: ''
  test: "  # Get the value whose value is ''\n  ttt_query('array/{?:}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 491
  num: 36
  package: Data::Hub::Query
  result: a
  summary: ''
  test: "  # Get the value whose key is eq 0\n  ttt_query('array/{?:0}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 500
  num: 37
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  0 => a\n}"
  summary: ''
  test: "  # Get the value whose key is == 0\n  ttt_query('array/{?(==):0}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 511
  num: 38
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  2 => c\n  3 => ab\n  4 => abc\n}"
  summary: ''
  test: "  # Get all items whose key is >= 2\n  ttt_query('array/{?(>=):2}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 524
  num: 39
  package: Data::Hub::Query
  result: a
  summary: ''
  test: "  # Get the value whose value is 'a'\n  ttt_query('array/{?*:a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 533
  num: 40
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  0 => a\n}"
  summary: ''
  test: "  # Get all items whose value is eq 'a'\n  ttt_query('array/{?*(eq):a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 544
  num: 41
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  0 => a\n  3 => ab\n  4 => abc\n}"
  summary: ''
  test: "  # Get all items whose value is =~ /a/\n  ttt_query('array/{?*(=~):a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 561
  num: 42
  package: Data::Hub::Query
  result: Alpha
  summary: ''
  test: "  # Get the value whose key is eq 'a'\n  ttt_query('hash/{?:a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 570
  num: 43
  package: Data::Hub::Query
  result: Alpha
  summary: ''
  test: "  # Get the value whose value is eq 'Alpha'\n  ttt_query('hash/{?*:Alpha}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 579
  num: 44
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  a => Alpha\n}"
  summary: ''
  test: "  # Get all items whose value is eq 'Alpha'\n  ttt_query('hash/{?*(eq):Alpha}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 590
  num: 45
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  a => Alpha\n  b => Beta\n}"
  summary: ''
  test: "  # Get all items whose value is =~ /a$/\n  ttt_query('hash/{?*(=~):a$}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 606
  num: 46
  package: Data::Hub::Query
  result: "Data::OrderedHash => %{\n  name => a\n  text => Alpha\n}"
  summary: ''
  test: "  # Get the value whose key is eq 0\n  ttt_query('array_of_hashes/{?:0}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 618
  num: 47
  package: Data::Hub::Query
  result: "Data::OrderedHash => %{\n  name => a\n  text => Alpha\n}"
  summary: ''
  test: "  # Get the value whose name is eq 'a'\n  ttt_query('array_of_hashes/{?name:a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 630
  num: 48
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  0 => %{\n    name => a\n    text => Alpha\n
    \ }\n}"
  summary: ''
  test: "  # Get all items whose name is eq 'a'\n  ttt_query('array_of_hashes/{?name(eq):a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 644
  num: 49
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  0 => %{\n    name => a\n    text => Alpha\n
    \ }\n  1 => %{\n    name => b\n    text => Beta\n  }\n}"
  summary: ''
  test: "  # Get all items whose name is =~ /a|b/\n  ttt_query('array_of_hashes/{?name(=~):a|b}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 666
  num: 50
  package: Data::Hub::Query
  result: "Data::OrderedHash => %{\n  text => Alpha\n  num => 3\n}"
  summary: ''
  test: "  # Get the value whose key is eq 'a'\n  ttt_query('hash_of_hashes/{?:a}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 678
  num: 51
  package: Data::Hub::Query
  result: "Data::OrderedHash => %{\n  text => Alpha\n  num => 3\n}"
  summary: ''
  test: "  # Get the value whose text is eq 'Alpha'\n  ttt_query('hash_of_hashes/{?text:Alpha}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 690
  num: 52
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  a => %{\n    text => Alpha\n    num => 3\n  }\n}"
  summary: ''
  test: "  # Get all items whose text is eq 'Alpha'\n  ttt_query('hash_of_hashes/{?text(eq):Alpha}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 704
  num: 53
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  a => %{\n    text => Alpha\n    num => 3\n  }\n
    \ b => %{\n    text => Beta\n    num => 2\n  }\n}"
  summary: ''
  test: "  # Get all items whose num is > 1\n  ttt_query('hash_of_hashes/{?num(>):1}');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 726
  num: 54
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  a => %{\n    text => Alpha\n    num => 3\n  }\n
    \ c => %{\n    text => Charlie\n    num => 1\n  }\n}"
  summary: ''
  test: '  ttt_query(''hash_of_hashes/*|{?(ne):b}'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 743
  num: 55
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  b => %{\n    text => Beta\n    num => 2\n  }\n
    \ c => %{\n    text => Charlie\n    num => 1\n  }\n}"
  summary: ''
  test: '  ttt_query(''hash_of_hashes/*|{?text(=~):B|C}'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 762
  num: 56
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  b => %{\n    text => Beta\n    num => 2\n  }\n}"
  summary: ''
  test: '  ttt_query(''hash_of_hashes/*|{?(=~):[ab]}|{?text(=~):B|C}'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Query.pm
  lineno: 775
  num: 57
  package: Data::Hub::Query
  result: "Data::Hub::Subset => %{\n  b => %{\n    text => Beta\n    num => 2\n  }\n}"
  summary: ''
  test: '  ttt_query(''hash_of_hashes/{?(=~):[ab]}|{?text(=~):B|C}'');'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 85
  num: 58
  package: Data::Hub::Util
  result: ''
  summary: Load this module
  test: '  use Data::Hub::Util qw(:all);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 125
  num: 59
  package: Data::Hub::Util
  result: c
  summary: ''
  test: '  curry({a=>{b=>''c''}})->get(''/a/b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 137
  num: 60
  package: Data::Hub::Util
  result: Data::Hub::FileSystem::Node
  summary: ''
  test: '  FS(''Node'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 148
  num: 61
  package: Data::Hub::Util
  result: data-hash
  summary: ''
  test: '  typeof(''foo.bar'', {});'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 149
  num: 62
  package: Data::Hub::Util
  result: data-array
  summary: ''
  test: '  typeof(''/with/path/foo.bar'', []);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 150
  num: 63
  package: Data::Hub::Util
  result: data-scalar-bar
  summary: ''
  test: '  typeof(''foo.bar'', ''baz'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 228
  num: 64
  package: Data::Hub::Util
  result: one:two:{/i/am/three}:four
  summary: ''
  test: "  my $addr = '/one/two/{/i/am/three}/four';\n  join(':', addr_shift($addr),
    addr_shift($addr), addr_shift($addr),\n  addr_shift($addr)); "
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 241
  num: 65
  package: Data::Hub::Util
  result: two,/one
  summary: ''
  test: "  my $addr = '/one/two';\n  my $last = addr_pop($addr);\n  \"$last,$addr\""
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 255
  num: 66
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  addr_normalize(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 256
  num: 67
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_normalize(''/a/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 257
  num: 68
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_normalize(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 258
  num: 69
  package: Data::Hub::Util
  result: /b
  summary: ''
  test: '  addr_normalize(''/a/../b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 259
  num: 70
  package: Data::Hub::Util
  result: /b
  summary: ''
  test: '  addr_normalize(''/a/../../b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 260
  num: 71
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_normalize(''/a/.../b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 261
  num: 72
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_normalize(''/a/.../'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 262
  num: 73
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_normalize(''/a/...'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 263
  num: 74
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_normalize(''/a/.../..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 264
  num: 75
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  addr_normalize(''/a/../...'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 275
  num: 76
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_parent();'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 276
  num: 77
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_parent('''');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 277
  num: 78
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  addr_parent(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 278
  num: 79
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  addr_parent(''/a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 279
  num: 80
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  addr_parent(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 280
  num: 81
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  addr_parent(''a/b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 281
  num: 82
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  addr_parent(''a/b.c'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 294
  num: 83
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_name('''');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 295
  num: 84
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_name(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 296
  num: 85
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  addr_name(''/a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 297
  num: 86
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  addr_name(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 298
  num: 87
  package: Data::Hub::Util
  result: b
  summary: ''
  test: '  addr_name(''a/b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 299
  num: 88
  package: Data::Hub::Util
  result: b.c
  summary: ''
  test: '  addr_name(''a/b.c'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 311
  num: 89
  package: Data::Hub::Util
  result: '0'
  summary: ''
  test: '  scalar(addr_split(''''));'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 312
  num: 90
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  join '' '', addr_split(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 313
  num: 91
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  join '' '', addr_split(''/a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 314
  num: 92
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  join '' '', addr_split(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 315
  num: 93
  package: Data::Hub::Util
  result: a b
  summary: ''
  test: '  join '' '', addr_split(''a/b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 316
  num: 94
  package: Data::Hub::Util
  result: a b.c
  summary: ''
  test: '  join '' '', addr_split(''a/b.c'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 330
  num: 95
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  addr_join(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 331
  num: 96
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_join(''/a'', ''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 332
  num: 97
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_join(''/a/'', ''b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 333
  num: 98
  package: Data::Hub::Util
  result: /b
  summary: ''
  test: '  addr_join(''/a/..'', ''/b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 334
  num: 99
  package: Data::Hub::Util
  result: /b
  summary: ''
  test: '  addr_join(''/a/../'', ''../b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 335
  num: 100
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_join(''/a/.../'', ''b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 336
  num: 101
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_join(''/a/'', ''.../'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 337
  num: 102
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  addr_join(''/a/'', ''...'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 338
  num: 103
  package: Data::Hub::Util
  result: /a/b
  summary: ''
  test: '  addr_join(''/a/'', ''b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 339
  num: 104
  package: Data::Hub::Util
  result: /a/b
  summary: ''
  test: '  addr_join(''/a/'', ''b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 340
  num: 105
  package: Data::Hub::Util
  result: /a/b
  summary: ''
  test: '  addr_join(''/a'', ''/b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 341
  num: 106
  package: Data::Hub::Util
  result: /a/b
  summary: ''
  test: '  addr_join(''/a'', ''b'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 342
  num: 107
  package: Data::Hub::Util
  result: /a/b/c
  summary: ''
  test: '  addr_join(''/a'', ''b'', ''c'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 353
  num: 108
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_ext(undef);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 354
  num: 109
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  addr_ext(''foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 355
  num: 110
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  addr_ext(''/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 356
  num: 111
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  addr_ext(''./foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 357
  num: 112
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  addr_ext(''../foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 358
  num: 113
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  addr_ext(''/foo/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 359
  num: 114
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  addr_ext(''/foo.bar.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 360
  num: 115
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_ext(''/foo/bar.'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 361
  num: 116
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_ext(''/foo/bar'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 362
  num: 117
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_ext(''.metadata'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 363
  num: 118
  package: Data::Hub::Util
  result: bak
  summary: ''
  test: '  addr_ext(''.metadata.bak'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 377
  num: 119
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_basename(undef);'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 378
  num: 120
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_basename(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 379
  num: 121
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  addr_basename(''foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 380
  num: 122
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  addr_basename(''foo.txt/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 381
  num: 123
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  addr_basename(''/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 382
  num: 124
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  addr_basename(''./foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 383
  num: 125
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  addr_basename(''../foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 384
  num: 126
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  addr_basename(''/foo/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 385
  num: 127
  package: Data::Hub::Util
  result: foo.bar
  summary: ''
  test: '  addr_basename(''/foo.bar.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 386
  num: 128
  package: Data::Hub::Util
  result: bar
  summary: ''
  test: '  addr_basename(''/foo/bar.'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 387
  num: 129
  package: Data::Hub::Util
  result: bar
  summary: ''
  test: '  addr_basename(''/foo/bar'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 388
  num: 130
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  addr_basename(''.metadata'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 389
  num: 131
  package: Data::Hub::Util
  result: .metadata
  summary: ''
  test: '  addr_basename(''.metadata.bak'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 404
  num: 132
  package: Data::Hub::Util
  result: /a/b
  summary: ''
  test: '  addr_base(''/a/b/{d}'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 405
  num: 133
  package: Data::Hub::Util
  result: /a/b/d
  summary: ''
  test: '  addr_base(''/a/b/d'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 429
  num: 134
  package: Data::Hub::Util
  result: one:two:..:four
  summary: ''
  test: "  my $path = '/one/two/../four';\n  join(':', path_shift($path), path_shift($path),
    path_shift($path),\n  path_shift($path)); "
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 442
  num: 135
  package: Data::Hub::Util
  result: two,/one
  summary: ''
  test: "  my $path = '/one/two';\n  my $last = path_pop($path);\n  \"$last,$path\""
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 455
  num: 136
  package: Data::Hub::Util
  result: /one/two/three
  summary: ''
  test: "  my $path = '/one/two';\n  my $count = path_push($path, 'three');\n  \"$path\""
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 467
  num: 137
  package: Data::Hub::Util
  result: '0'
  summary: ''
  test: '  path_split('''');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 468
  num: 138
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  join '' '', path_split(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 469
  num: 139
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  join '' '', path_split(''/a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 470
  num: 140
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  join '' '', path_split(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 471
  num: 141
  package: Data::Hub::Util
  result: a b
  summary: ''
  test: '  join '' '', path_split(''a/b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 472
  num: 142
  package: Data::Hub::Util
  result: a b.c
  summary: ''
  test: '  join '' '', path_split(''a/b.c'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 489
  num: 143
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_basename(undef);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 490
  num: 144
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  path_basename(''foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 491
  num: 145
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  path_basename(''/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 492
  num: 146
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  path_basename(''./foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 493
  num: 147
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  path_basename(''../foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 494
  num: 148
  package: Data::Hub::Util
  result: foo
  summary: ''
  test: '  path_basename(''/foo/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 495
  num: 149
  package: Data::Hub::Util
  result: foo.bar
  summary: ''
  test: '  path_basename(''/foo.bar.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 496
  num: 150
  package: Data::Hub::Util
  result: bar
  summary: ''
  test: '  path_basename(''/foo/bar.'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 497
  num: 151
  package: Data::Hub::Util
  result: bar
  summary: ''
  test: '  path_basename(''/foo/bar'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 498
  num: 152
  package: Data::Hub::Util
  result: .bashrc
  summary: ''
  test: '  path_basename(''.bashrc'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 499
  num: 153
  package: Data::Hub::Util
  result: .bashrc
  summary: ''
  test: '  path_basename(''.bashrc.tmp'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 500
  num: 154
  package: Data::Hub::Util
  result: no-dots
  summary: ''
  test: '  path_basename(''/no-dots'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 517
  num: 155
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_ext(undef);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 518
  num: 156
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  path_ext(''foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 519
  num: 157
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  path_ext(''/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 520
  num: 158
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  path_ext(''./foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 521
  num: 159
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  path_ext(''../foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 522
  num: 160
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  path_ext(''/foo/foo.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 523
  num: 161
  package: Data::Hub::Util
  result: txt
  summary: ''
  test: '  path_ext(''/foo.bar.txt'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 524
  num: 162
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_ext(''/foo/bar.'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 525
  num: 163
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_ext(''/foo/bar'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 526
  num: 164
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_ext(''.bashrc'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 527
  num: 165
  package: Data::Hub::Util
  result: tmp
  summary: ''
  test: '  path_ext(''.bashrc.tmp'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 528
  num: 166
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_ext(''/no-dots'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 544
  num: 167
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  path_normalize(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 545
  num: 168
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  path_normalize(''/a/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 546
  num: 169
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  path_normalize(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 547
  num: 170
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  path_normalize(''/a/../a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 548
  num: 171
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  path_normalize(''/a/../../a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 549
  num: 172
  package: Data::Hub::Util
  result: ../../w/s/x
  summary: ''
  test: '  path_normalize( "../../w/b/../s/x" );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 550
  num: 173
  package: Data::Hub::Util
  result: u/n/w
  summary: ''
  test: '  path_normalize( "u/n/w/" );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 551
  num: 174
  package: Data::Hub::Util
  result: w/s
  summary: ''
  test: '  path_normalize( "u/../w/b/../s" );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 552
  num: 175
  package: Data::Hub::Util
  result: u/n
  summary: ''
  test: '  path_normalize( "u//n" );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 553
  num: 176
  package: Data::Hub::Util
  result: u/n/f
  summary: ''
  test: '  path_normalize( "u//n/./f" );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 554
  num: 177
  package: Data::Hub::Util
  result: http://t/u/n
  summary: ''
  test: '  path_normalize( "http://t/u//n" );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 555
  num: 178
  package: Data::Hub::Util
  result: /d/e/f
  summary: ''
  test: '  path_normalize( ''/a/b/c/../../../d/e/f'' );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 556
  num: 179
  package: Data::Hub::Util
  result: ./a
  summary: ''
  test: '  path_normalize( ''./a'' );'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 557
  num: 180
  package: Data::Hub::Util
  result: /a
  summary: ''
  test: '  path_normalize( ''/./a'' );'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 595
  num: 181
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_parent('''');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 596
  num: 182
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  path_parent(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 597
  num: 183
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  path_parent(''/a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 598
  num: 184
  package: Data::Hub::Util
  result: /
  summary: ''
  test: '  path_parent(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 599
  num: 185
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_parent(''a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 600
  num: 186
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  path_parent(''a/b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 601
  num: 187
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  path_parent(''a/b.c'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 602
  num: 188
  package: Data::Hub::Util
  result: ../..
  summary: ''
  test: '  path_parent(''../../a'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 614
  num: 189
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_name('''');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 615
  num: 190
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_name(''/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 616
  num: 191
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  path_name(''/a'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 617
  num: 192
  package: Data::Hub::Util
  result: a
  summary: ''
  test: '  path_name(''/a/b/..'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 618
  num: 193
  package: Data::Hub::Util
  result: b
  summary: ''
  test: '  path_name(''a/b/'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 619
  num: 194
  package: Data::Hub::Util
  result: b.c
  summary: ''
  test: '  path_name(''a/b.c'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 631
  num: 195
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''/a'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 632
  num: 196
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''A:/b'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 633
  num: 197
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''/a/b'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 634
  num: 198
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''http://a'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 635
  num: 199
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''svn+ssh://a.b'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 636
  num: 200
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute('''');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 637
  num: 201
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''a/b'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 638
  num: 202
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''a:\\b'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 639
  num: 203
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''a/../b'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 640
  num: 204
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''../a'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 641
  num: 205
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''./a'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 642
  num: 206
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''svn+ssh//a.b'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 643
  num: 207
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''1://'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 644
  num: 208
  package: Data::Hub::Util
  result: ''
  summary: ''
  test: '  path_is_absolute(''+://'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 923
  num: 209
  package: Data::Hub::Util
  result: ''
  summary: normal usage
  test: '  dir_is_system(''.svn'', ''/tmp'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 924
  num: 210
  package: Data::Hub::Util
  result: ''
  summary: normal usage
  test: '  dir_is_system(''.git'', ''/tmp'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 925
  num: 211
  package: Data::Hub::Util
  result: ''
  summary: case sensitive
  test: '  dir_is_system(''.Svn'', ''/tmp'');'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/Hub/Util.pm
  lineno: 926
  num: 212
  package: Data::Hub::Util
  result: ''
  summary: undefined test
  test: '  dir_is_system(undef, undef);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
  lineno: 111
  num: 213
  package: Data::OrderedHash
  result: Apple;Cherry;Banana
  summary: ''
  test: "  my %h = ();\n  tie %h, 'Data::OrderedHash';\n  $h{'first'} = \"Apple\";\n
    \ $h{'second'} = \"Cherry\";\n  $h{'third'} = \"Banana\";\n  join ';', values
    %h;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
  lineno: 120
  num: 214
  package: Data::OrderedHash
  result: aXbBcC
  summary: Items retain their initial position
  test: "  my $h = Data::OrderedHash->new();\n  %$h = qw(a A b B c C);\n  $$h{'a'}
    = 'X';\n  join '', %$h;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Data/OrderedHash.pm
  lineno: 127
  num: 215
  package: Data::OrderedHash
  result: zxyw
  summary: ''
  test: "  my $h = Data::OrderedHash->new();\n  $h->{'z'} = \"Apple\";\n  $h->{'x'}
    = \"Banana\";\n  $h->{'y'} = \"Cherry\";\n  my $r = '';\n  while (my ($k, $v)
    = each %$h) { $r .= $k; delete $$h{$k} }\n  $h->{'w'} = \"Can't elope\";\n  $r
    .= join('', keys %$h);\n  $r;"
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Logical.pm
  lineno: 9
  num: 216
  package: Error::Logical
  result: ''
  summary: ''
  test: "  use Error::Logical;\n  throw Error::DoesNotExist 'some resource';"
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Error/Programatic.pm
  lineno: 12
  num: 217
  package: Error::Programatic
  result: ''
  summary: ''
  test: "  use Error::Programatic;\n  throw Error::NotStatic;"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/LogUtil.pm
  lineno: 15
  num: 218
  package: Misc::LogUtil
  result: ''
  summary: Create a new instance
  test: "  use Misc::LogUtil;\n  Misc::LogUtil->new();"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 10
  num: 219
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  use Misc::Stopwatch;'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 11
  num: 220
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  my $sw = Misc::Stopwatch->new();'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 25
  num: 221
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  my $sw = Misc::Stopwatch->new()->start();'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 41
  num: 222
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  my $sw = Misc::Stopwatch->new()->start()->lap();'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 54
  num: 223
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  my $sw = Misc::Stopwatch->new()->start()->stop();'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 76
  num: 224
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  Misc::Stopwatch->new()->start()->elapsed();'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 97
  num: 225
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  my $sw = Misc::Stopwatch->new()->reset();'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 111
  num: 226
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  Misc::Stopwatch->new()->is_running();'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Stopwatch.pm
  lineno: 112
  num: 227
  package: Misc::Stopwatch
  result: ''
  summary: ''
  test: '  Misc::Stopwatch->new()->start()->is_running();'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Time.pm
  lineno: 88
  num: 228
  package: Misc::Time
  result: ''
  summary: ''
  test: '  use Misc::Time qw(:all);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Misc/Time.pm
  lineno: 89
  num: 229
  package: Misc::Time
  result: '1193094188.212812'
  summary: Simple time string conversion
  test: '  time_apr_to_hires(''1193094188212812'');'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 31
  num: 230
  package: Parse::Padding
  result: ''
  summary: ''
  test: '  use Parse::Padding qw(padding);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 33
  num: 231
  package: Parse::Padding
  result: 4;3
  summary: ''
  test: "  my $str = \"    a   \";\n  join ';', padding(\\$str, 4, 5);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 37
  num: 232
  package: Parse::Padding
  result: 2;3
  summary: ''
  test: "  my $str = \" \\na\\r\\n \";\n  join ';', padding(\\$str, 2, 3);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 41
  num: 233
  package: Parse::Padding
  result: 1;2
  summary: ''
  test: "  my $str = \" \\na\\r\\n \";\n  join ';', padding(\\$str, 2, 3, -crlf);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 45
  num: 234
  package: Parse::Padding
  result: 1;2
  summary: ''
  test: "  my $str = \" \\n\\na\\r\\n\\r\\n \";\n  join ';', padding(\\$str, 3, 4,
    -crlf);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 49
  num: 235
  package: Parse::Padding
  result: 0;0
  summary: ''
  test: "  my $str = \" a \";\n  join ';', padding(\\$str, 1, 2, -crlf);"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 92
  num: 236
  package: Parse::Padding
  result: ''
  summary: ''
  test: '  use Parse::Padding qw(trailing);'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 93
  num: 237
  package: Parse::Padding
  result: ''
  summary: invalid index
  test: '  trailing(''\r\n'', " xxx\r\n", ''abc'');'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 94
  num: 238
  package: Parse::Padding
  result: ''
  summary: invalid chars
  test: '  trailing('''', " xxx\r\n", 4);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 95
  num: 239
  package: Parse::Padding
  result: '3'
  summary: ''
  test: '  trailing(''\s'', " xxx \r\n", 4);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 96
  num: 240
  package: Parse::Padding
  result: '0'
  summary: ''
  test: '  trailing(''\r\n'', " xxx \r\n", 4);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 97
  num: 241
  package: Parse::Padding
  result: '2'
  summary: ''
  test: '  trailing(''\r\n'', " xxx\r\n", 4);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 98
  num: 242
  package: Parse::Padding
  result: '0'
  summary: ''
  test: '  trailing(''\r\n'', " xxx\r\n", 999);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 99
  num: 243
  package: Parse::Padding
  result: '0'
  summary: ''
  test: '  trailing(''\r\n'', " xxx\r\n", -999);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 100
  num: 244
  package: Parse::Padding
  result: '2'
  summary: ''
  test: '  trailing(''\r\n'', "\r\n\r\n", 0, 1);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 101
  num: 245
  package: Parse::Padding
  result: '1'
  summary: ''
  test: '  trailing(''\r\n'', "\n\n\n", 0, 1);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 102
  num: 246
  package: Parse::Padding
  result: '1'
  summary: end-of-string == $eol
  test: '  trailing(''abcd'', "a\na", 2, 1);'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 142
  num: 247
  package: Parse::Padding
  result: ''
  summary: ''
  test: '  use Parse::Padding qw(leading);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 143
  num: 248
  package: Parse::Padding
  result: '1'
  summary: ''
  test: '  leading(''\s'', " xxx", 1);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 144
  num: 249
  package: Parse::Padding
  result: '3'
  summary: ''
  test: '  leading(''\s'', "\r \nxxx", 3);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 145
  num: 250
  package: Parse::Padding
  result: '0'
  summary: ''
  test: '  leading(''\r\n'', " xxx", 1);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 146
  num: 251
  package: Parse::Padding
  result: '3'
  summary: ''
  test: '  leading(''\r\n'', "\r\n\rxxx", 3);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 147
  num: 252
  package: Parse::Padding
  result: '0'
  summary: ''
  test: '  leading(''\r\n'', "\r\n\rxxx", -999);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 148
  num: 253
  package: Parse::Padding
  result: '0'
  summary: ''
  test: '  leading(''\r\n'', "\r\n\rxxx", 999);'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 149
  num: 254
  package: Parse::Padding
  result: ''
  summary: invalid chars
  test: '  leading('''', "\r\n\rxxx", 3);'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 150
  num: 255
  package: Parse::Padding
  result: ''
  summary: invalid index
  test: '  leading(''\r\n'', "\r\n\rxxx", ''abc'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 151
  num: 256
  package: Parse::Padding
  result: '1'
  summary: begin-of-string == $bol
  test: '  leading(''abcd'', "axe", 1, 1);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Padding.pm
  lineno: 152
  num: 257
  package: Parse::Padding
  result: '1'
  summary: ''
  test: '  leading(''abcd'', "\naxe", 2, 1);'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 21
  num: 258
  package: Parse::StringToken
  result: ''
  summary: Include symbols
  test: '  use Parse::StringToken qw(:all);'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 44
  num: 259
  package: Parse::StringToken
  result: ''
  summary: Needs to have matching pairs
  test: '  str_token('''', -contained => ''123'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 58
  num: 260
  package: Parse::StringToken
  result: a
  summary: Basic
  test: '  str_token("a b c")->shift;'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 59
  num: 261
  package: Parse::StringToken
  result: and a two
  summary: Contains spaces
  test: "  my $s = str_token(q(one 'and a two' \"and a three\"));\n  $s->shift; $s->shift;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 82
  num: 262
  package: Parse::StringToken
  result: c
  summary: Basic
  test: '  str_token("a b c")->pop;'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 83
  num: 263
  package: Parse::StringToken
  result: and a two
  summary: Contains spaces
  test: "  my $s = str_token(q(one 'and a two' \"and a three\"));\n  $s->pop;\n  $s->pop;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/StringToken.pm
  lineno: 100
  num: 264
  package: Parse::StringToken
  result: a-b-c
  summary: Basic
  test: '  join(''-'', str_token("a b c")->split);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
  lineno: 962
  num: 265
  package: Parse::Template::Base
  result: 0-3,1-2
  summary: ''
  test: "  use Parse::Template::Base;\n  my $p = new Parse::Template::Base;\n  my
    $text = '<<>>';\n  my @pos = $p->substr_pos(\\$text, '<', '>', 0);\n  join ',',
    map {join '-', @$_} @pos;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
  lineno: 1063
  num: 266
  package: Parse::Template::Base
  result: Hello World
  summary: Simple replacement
  test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#name]';\n  my $p = new
    Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {name => 'World'});\n
    \ return $$o;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
  lineno: 1071
  num: 267
  package: Parse::Template::Base
  result: Hello World
  summary: Variable expansion
  test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#name]';\n  my $p = new
    Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {name => '[#next]',
    next => 'World'});\n  return $$o;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
  lineno: 1079
  num: 268
  package: Parse::Template::Base
  result: Hello World
  summary: Nested elements
  test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#data/name]';\n  my $p
    = new Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {data =>
    {name => 'World'}});\n  return $$o;"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Base.pm
  lineno: 1087
  num: 269
  package: Parse::Template::Base
  result: Hello World
  summary: Dynamic expansion
  test: "  use Parse::Template::Standard;\n  my $t = 'Hello [#[#name]]';\n  my $p
    = new Parse::Template::Standard();\n  my $o = $p->compile_text(\\$t, {name =>
    'next', next => 'World'});\n  return $$o;"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
  lineno: 64
  num: 270
  package: Parse::Template::Web
  result: ''
  summary: ''
  test: '  use Parse::Template::Web;'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
  lineno: 65
  num: 271
  package: Parse::Template::Web
  result: ''
  summary: ''
  test: '  use Data::Hub;'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
  lineno: 66
  num: 272
  package: Parse::Template::Web
  result: abc
  summary: ''
  test: "  my $p = Parse::Template::Web->new(Data::Hub->new());\n  $p->defang('a[#b]c');"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Parse/Template/Web.pm
  lineno: 69
  num: 273
  package: Parse::Template::Web
  result: abcabc/de
  summary: ''
  test: "  my $p = Parse::Template::Web->new(Data::Hub->new());\n  my $r = $p->defang(['a[#b]c',
    'a<b>c</d>e']);\n  join('', @$r);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Class.pm
  lineno: 69
  num: 274
  package: Perl::Class::Scalar
  result: 3:|:1:odd
  summary: ''
  test: "  package Foo;\n  use Perl::Class;\n  use base qw(Perl::Class::Hash);\n  sub
    new {\n    $_[0]->SUPER::new(1 => 2, 'odd');\n  }\n  1;\n  package main;\n  my
    $c = Foo->new();\n  $c->{3} = 4;\n  join ':', (keys %$c, '|', sort keys %{$c->__});"
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 125
  num: 275
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''eq'','''',undef);'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 126
  num: 276
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''eq'',''abc'',''abc'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 127
  num: 277
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''ne'',''abc'',''Abc'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 128
  num: 278
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''eq'',''abc'',undef);'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 129
  num: 279
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''!~'',''abc'',''A'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 130
  num: 280
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''=~'',''abc'',''a'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 131
  num: 281
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''=='',1234,1234);'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 132
  num: 282
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''>='',1234,1234);'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 133
  num: 283
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''eqic'',''abc'',''Abc'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 134
  num: 284
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''=='',undef,undef);'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 135
  num: 285
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''=='',0,undef);'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 136
  num: 286
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''!~i'',''abc'',''A'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 137
  num: 287
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''=~i'',''abc'',''A'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 138
  num: 288
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''eqic'',''abc'',''Abc'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 139
  num: 289
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''neic'',''abc'',''Abc'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 140
  num: 290
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''mod'',4,2);'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 141
  num: 291
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''bw'',''abc'',''a'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 142
  num: 292
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''bw'',''abc'',''b'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 143
  num: 293
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''ew'',''abc'',''b'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 144
  num: 294
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  compare(''ew'',''abc'',''c'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 158
  num: 295
  package: Perl::Comparison
  result: 1;2;10;20
  summary: ''
  test: "  my @numbers = ( 20, 1, 10, 2 );\n  join ';', sort { &sort_compare('<=>',$a,$b)
    } @numbers;"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 180
  num: 296
  package: Perl::Comparison
  result: ''
  summary: ''
  test: '  use Perl::Comparison qw(sort_keydepth);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 182
  num: 297
  package: Perl::Comparison
  result: o/ne;t/w/o;th/r/e/e
  summary: The deepest elements come last
  test: '  join '';'', sort {&sort_keydepth($a, $b)} qw(t/w/o o/ne th/r/e/e);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Comparison.pm
  lineno: 186
  num: 298
  package: Perl::Comparison
  result: ;none;o/ne;t/w/o;th/r/e/e
  summary: Those without come after undefined but before those with
  test: "  no warnings 'uninitialized';\n  join ';', sort {&sort_keydepth($a, $b)}
    (qw(t/w/o o/ne none th/r/e/e), undef);"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Module.pm
  lineno: 16
  num: 299
  package: Perl::Module
  result: ''
  summary: ''
  test: '  use Perl::Module;'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Module.pm
  lineno: 17
  num: 300
  package: Perl::Module
  result: 'Dumper

    blessed

    bytesize

    can

    carp

    checksum

    clone

    cluck

    compare

    confess

    croak

    gettimeofday

    grep_first

    grep_first_index

    index_imatch

    index_match

    index_unescaped

    int_div

    is_numeric

    isa

    max

    min

    my_opts

    overlay

    push_uniq

    reftype

    sleep

    sort_compare

    sort_keydepth

    stat

    str_ref

    strftime

    strptime

    time

    tv_interval

    unshift_uniq

    warnf'
  summary: ''
  test: '  join "\n", sort @Perl::Module::EXPORT;'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Options.pm
  lineno: 29
  num: 301
  package: Perl::Options
  result: a,b;opt1,opt2,opt3
  summary: ''
  test: "  my $sub = sub {\n    my ($opts, @argv) = my_opts(\\@_);\n    my $ret =
    join(',', sort(@_));\n    $ret .= ';' . join(',', sort keys %$opts);\n    return
    $ret;\n  };\n  &$sub('a', 'b', '-opt1', -opt2 => 'See', '-opt3=0');"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 58
  num: 302
  package: Perl::Util
  result: ''
  summary: Load this module
  test: '  use Perl::Util qw(:all);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 92
  num: 303
  package: Perl::Util
  result: a
  summary: ''
  test: '  my $a = str_ref("a"); $$a;'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 128
  num: 304
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''-1'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 129
  num: 305
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''0'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 130
  num: 306
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''+1'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 131
  num: 307
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''3.14'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 132
  num: 308
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''6.02214E23'');'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 133
  num: 309
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''6.626068e-34'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 134
  num: 310
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''3.1.4'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 135
  num: 311
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric('''');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 136
  num: 312
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(''three'');'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 137
  num: 313
  package: Perl::Util
  result: ''
  summary: ''
  test: '  is_numeric(undef);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 151
  num: 314
  package: Perl::Util
  result: 1r1
  summary: 3 divided by 2
  test: '  join(''r'',int_div(3,2));'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 152
  num: 315
  package: Perl::Util
  result: 1r1
  summary: 3.9 divided by 2 (does not round)
  test: '  join(''r'',int_div(3.9,2));'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 153
  num: 316
  package: Perl::Util
  result: ''
  summary: divide by zero
  test: '  int_div(3,0);'
- comparator: abort
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 154
  num: 317
  package: Perl::Util
  result: ''
  summary: not numeric
  test: '  int_div(''three'',1);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 167
  num: 318
  package: Perl::Util
  result: apple
  summary: first item with an \'a\' in it
  test: '  grep_first {/a/} qw(apple banana cherry);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 185
  num: 319
  package: Perl::Util
  result: '0'
  summary: index of first item with an \'a\' in it
  test: '  grep_first_index {/a/} qw(apple banana cherry);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 252
  num: 320
  package: Perl::Util
  result: '4'
  summary: ''
  test: '  index_match("abracadabra", "[cd]")'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 253
  num: 321
  package: Perl::Util
  result: '3'
  summary: ''
  test: '  index_match("abracadabra", "a", 3)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 254
  num: 322
  package: Perl::Util
  result: '-1'
  summary: ''
  test: '  index_match("abracadabra", "d{2,2}")'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 255
  num: 323
  package: Perl::Util
  result: '4'
  summary: ''
  test: "  my ($p, $str) = index_match(\"scant\", \"can\");\n  $p + length($str);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 257
  num: 324
  package: Perl::Util
  result: '7'
  summary: ''
  test: '  index_match("foobar foo bar", ''\bfoo\b'') # zero-width test'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 258
  num: 325
  package: Perl::Util
  result: '-1'
  summary: ''
  test: '  index_match("foobar foo bar", ''Bar'') # no-match'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 259
  num: 326
  package: Perl::Util
  result: '0'
  summary: ''
  test: '  index_match("aa", "a")'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 260
  num: 327
  package: Perl::Util
  result: '1'
  summary: ''
  test: '  index_match("aa", "a", 1)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 271
  num: 328
  package: Perl::Util
  result: '3'
  summary: ''
  test: '  index_imatch("foobar foo bar", ''Bar'') # Case insensitive match'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 272
  num: 329
  package: Perl::Util
  result: '2'
  summary: ''
  test: '  index_imatch(" b\n a", ''\s*a'') # Case insensitive match'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 302
  num: 330
  package: Perl::Util
  result: '1625030915'
  summary: ''
  test: '  checksum(''“Hello”'', ''world'');'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 321
  num: 331
  package: Perl::Util
  result: 10 B
  summary: ''
  test: '  bytesize(10)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 322
  num: 332
  package: Perl::Util
  result: 10.77 KB
  summary: ''
  test: '  bytesize(11028)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 323
  num: 333
  package: Perl::Util
  result: 953.6743 MB
  summary: ''
  test: '  bytesize(1000 ** 3, -precision => 4)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 324
  num: 334
  package: Perl::Util
  result: 1 GB
  summary: ''
  test: '  bytesize(2 ** 30)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 325
  num: 335
  package: Perl::Util
  result: 512 PiB
  summary: ''
  test: '  bytesize(2 ** 59, -binary_symbol)'
- comparator: defined
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 357
  num: 336
  package: Perl::Util
  result: ''
  summary: ''
  test: '  reftype(undef)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 358
  num: 337
  package: Perl::Util
  result: ''
  summary: ''
  test: '  reftype('''')'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 359
  num: 338
  package: Perl::Util
  result: HASH
  summary: ''
  test: '  reftype({})'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 360
  num: 339
  package: Perl::Util
  result: ARRAY
  summary: ''
  test: '  reftype([])'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 361
  num: 340
  package: Perl::Util
  result: SCALAR
  summary: ''
  test: '  my $a = ''''; reftype(\$a)'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 362
  num: 341
  package: Perl::Util
  result: REF
  summary: ''
  test: '  my $a = ''''; my $b = \$a; reftype(\$b)'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 374
  num: 342
  package: Perl::Util
  result: ''
  summary: ''
  test: '  isa({}, ''HASH'')'
- comparator: 'true'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/Perl/Util.pm
  lineno: 375
  num: 343
  package: Perl::Util
  result: ''
  summary: ''
  test: '  isa([], ''ARRAY'')'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Livesite/Args.pm
  lineno: 86
  num: 344
  package: WWW::Livesite::Args
  result: hello world
  summary: ''
  test: "  use WWW::Livesite::Args;\n  my $qs = WWW::Livesite::Args->new('msg=hello%20world');\n
    \ die if defined $qs->{MSG};\n  return $qs->{msg};"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Livesite/Args.pm
  lineno: 93
  num: 345
  package: WWW::Livesite::Args
  result: 1|2
  summary: ''
  test: "  use WWW::Livesite::Args;\n  my $qs = WWW::Livesite::Args->new('a=1&a=2');\n
    \ my $a = $qs->{a};\n  return join '|', @$a;"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 197
  num: 346
  package: WWW::Misc::Image
  result: ''
  summary: ''
  test: '  use WWW::Misc::Image qw(resize_str_to_props);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 198
  num: 347
  package: WWW::Misc::Image
  result: max_x=800;max_y=0;min_x=0;min_y=0
  summary: ''
  test: "  my $props = resize_str_to_props('800');\n  join(';', map { $_ . '=' . $$props{$_}
    } sort keys %$props);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 202
  num: 348
  package: WWW::Misc::Image
  result: max_x=800;max_y=600;min_x=0;min_y=0
  summary: ''
  test: "  my $props = resize_str_to_props('800x600');\n  join(';', map { $_ . '='
    . $$props{$_} } sort keys %$props);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 206
  num: 349
  package: WWW::Misc::Image
  result: max_x=800;max_y=600;min_x=480;min_y=0
  summary: ''
  test: "  my $props = resize_str_to_props('800x600/480');\n  join(';', map { $_ .
    '=' . $$props{$_} } sort keys %$props);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 210
  num: 350
  package: WWW::Misc::Image
  result: max_x=800;max_y=0;min_x=480;min_y=0
  summary: ''
  test: "  my $props = resize_str_to_props('800/480');\n  join(';', map { $_ . '='
    . $$props{$_} } sort keys %$props);"
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 214
  num: 351
  package: WWW::Misc::Image
  result: flags=z;max_x=100;max_y=0;min_x=0;min_y=0
  summary: ''
  test: "  my $props = resize_str_to_props('100/z');\n  join(';', map { $_ . '=' .
    $$props{$_} } sort keys %$props);"
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 244
  num: 352
  package: WWW::Misc::Image
  result: ''
  summary: ''
  test: '  use WWW::Misc::Image qw(props_to_resize_str);'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 245
  num: 353
  package: WWW::Misc::Image
  result: '800'
  summary: ''
  test: '  props_to_resize_str({max_x => 800});'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 246
  num: 354
  package: WWW::Misc::Image
  result: 800x600
  summary: ''
  test: '  props_to_resize_str({max_x => 800, max_y => 600});'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 247
  num: 355
  package: WWW::Misc::Image
  result: 800/480
  summary: ''
  test: '  props_to_resize_str({max_x => 800, min_x => 480});'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 248
  num: 356
  package: WWW::Misc::Image
  result: 100x100/100x100
  summary: ''
  test: '  props_to_resize_str({max_x => 100, max_y => 100,min_x => 100, min_y =>
    100});'
- comparator: match
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 250
  num: 357
  package: WWW::Misc::Image
  result: 100/z
  summary: ''
  test: '  props_to_resize_str({max_x => 100, flags => ''z''});'
- comparator: abort
  invert: 1
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 301
  num: 358
  package: WWW::Misc::Image
  result: ''
  summary: ''
  test: '  use WWW::Misc::Image qw(image_dims);'
- comparator: 'false'
  invert: 0
  lib: /home/ryan/lsn/lsn-data-hub/out/lsn-data-hub-05.00297/lib/WWW/Misc/Image.pm
  lineno: 302
  num: 359
  package: WWW::Misc::Image
  result: ''
  summary: ''
  test: '  image_dims("/foo");'
