Skip to content

Instantly share code, notes, and snippets.

@itcharlie
Created December 16, 2018 19:28
Show Gist options
  • Save itcharlie/10b65facc73111fcabf24a93016313ce to your computer and use it in GitHub Desktop.
Save itcharlie/10b65facc73111fcabf24a93016313ce to your computer and use it in GitHub Desktop.
JSON from metcpan /search/web
{
"total" : 1948,
"results" : [
{
"total" : 359,
"hits" : [
{
"module" : [
{
"indexed" : true,
"associated_pod" : "ETHER/Moose-2.2011/lib/Moose.pm",
"version_numified" : 2.2011,
"version" : "2.2011",
"authorized" : true,
"name" : "Moose"
}
],
"description" : "Moose is an extension of the Perl 5 object system. The main goal of Moose is to make Perl 5 Object Oriented programming easier, more consistent, and less tedious. With Moose you can think more about what you want to do and less about the mechanics of OOP. Additionally, Moose is built on top of Class::MOP, which is a metaclass system for Perl 5. This means that Moose not only makes building normal Perl 5 objects better, but it provides the power of metaclass programming as well. New to Moose? If you're new to Moose, the best place to start is the Moose::Manual docs, followed by the Moose::Cookbook. The intro will show you what Moose is, and how it makes Perl 5 OO better. The cookbook recipes on Moose basics will get you up to speed with many of Moose's features quickly. Once you have an idea of what Moose can do, you can use the API documentation to get more detail on features which interest you. Moose Extensions The \"MooseX::\" namespace is the official place to find Moose extensions. These extensions can be found on the CPAN. The easiest way to find them is to search for them (<https://metacpan.org/search?q=MooseX::>), or to examine Task::Moose which aims to keep an up-to-date, easily installable list of Moose extensions.",
"date" : "2018-05-16T03:48:17",
"documentation" : "Moose",
"distribution" : "Moose",
"release" : "Moose-2.2011",
"indexed" : true,
"authorized" : true,
"favorites" : 298,
"id" : "66_Puijxul1ejDAFKCTAJQmEV2I",
"pod_lines" : [
290,
979
],
"path" : "lib/Moose.pm",
"status" : "latest",
"author" : "ETHER",
"score" : 0.044125836,
"abstract" : "A postmodern object system for Perl 5"
},
{
"authorized" : true,
"distribution" : "Moose",
"release" : "Moose-2.2011",
"indexed" : true,
"description" : "This module provides a set of utility functions. Many of these functions are intended for use in Moose itself or MooseX modules, but some of them may be useful for use in your own code.",
"date" : "2018-05-16T03:48:17",
"documentation" : "Moose::Util",
"module" : [
{
"version_numified" : 2.2011,
"indexed" : true,
"associated_pod" : "ETHER/Moose-2.2011/lib/Moose/Util.pm",
"name" : "Moose::Util",
"version" : "2.2011",
"authorized" : true
}
],
"author" : "ETHER",
"abstract" : "Utilities for working with Moose classes",
"score" : 0.014573866,
"pod_lines" : [
528,
197
],
"path" : "lib/Moose/Util.pm",
"status" : "latest",
"id" : "lprghKpYlPd4gPsvmiTDNCH1Ffo",
"favorites" : 298
},
{
"release" : "Moose-2.2011",
"indexed" : true,
"distribution" : "Moose",
"authorized" : true,
"module" : [
{
"version_numified" : 2.2011,
"associated_pod" : "ETHER/Moose-2.2011/lib/Moose/Role.pm",
"indexed" : true,
"name" : "Moose::Role",
"authorized" : true,
"version" : "2.2011"
}
],
"date" : "2018-05-16T03:48:17",
"documentation" : "Moose::Role",
"description" : "The concept of roles is documented in Moose::Manual::Roles. This document serves as API documentation.",
"status" : "latest",
"pod_lines" : [
172,
205
],
"path" : "lib/Moose/Role.pm",
"score" : 0.014573866,
"abstract" : "The Moose Role",
"author" : "ETHER",
"favorites" : 298,
"id" : "V6WludbB_ETk5smkkLU99wr8Bok"
},
{
"favorites" : 298,
"id" : "YLZAl9TN7rbhUzc5NkVmryvKuq4",
"status" : "latest",
"path" : "lib/Test/Moose.pm",
"pod_lines" : [
90,
138
],
"abstract" : "Test functions for Moose specific features",
"score" : 0.014573866,
"author" : "ETHER",
"module" : [
{
"authorized" : true,
"version" : "2.2011",
"name" : "Test::Moose",
"associated_pod" : "ETHER/Moose-2.2011/lib/Test/Moose.pm",
"indexed" : true,
"version_numified" : 2.2011
}
],
"documentation" : "Test::Moose",
"date" : "2018-05-16T03:48:17",
"description" : "This module provides some useful test functions for Moose based classes. It is an experimental first release, so comments and suggestions are very welcome.",
"indexed" : true,
"release" : "Moose-2.2011",
"distribution" : "Moose",
"authorized" : true
},
{
"favorites" : 298,
"date" : "2018-05-16T03:48:17",
"documentation" : "Moose::Intro",
"id" : "11AnhPMmD5_Y1PzVbH73ecvxyaA",
"description" : "The intro has been replaced by Moose::Manual. This POD document still exists for the benefit of anyone out there who might've linked to it in the past.",
"status" : "latest",
"release" : "Moose-2.2011",
"indexed" : true,
"pod_lines" : [
5,
72
],
"path" : "lib/Moose/Intro.pod",
"distribution" : "Moose",
"score" : 0.014235733,
"authorized" : true,
"abstract" : "Expanded into Moose::Manual, so go read that",
"author" : "ETHER"
}
],
"distribution" : "Moose"
},
{
"hits" : [
{
"description" : "\"IO::Moose\" provides a simple mechanism to load several modules in one go. \"IO::Moose::*\" classes provide an interface mostly compatible with IO. The differences: * It is based on Moose object framework. * It uses Exception::Base for signaling errors. Most of methods are throwing exception on failure. * The modifiers like \"input_record_separator\" are supported on per file handler basis. * It also implements additional methods like \"say\", \"slurp\".",
"documentation" : "IO::Moose",
"date" : "2009-10-29T12:15:13",
"module" : [
{
"version" : "0.1004",
"authorized" : true,
"name" : "IO::Moose",
"indexed" : true,
"associated_pod" : "DEXTER/IO-Moose-0.1004/lib/IO/Moose.pm",
"version_numified" : 0.1004
}
],
"authorized" : true,
"distribution" : "IO-Moose",
"indexed" : true,
"release" : "IO-Moose-0.1004",
"id" : "DM8N_WaRPxb9XNFvp5yGt4_CGzQ",
"favorites" : null,
"author" : "DEXTER",
"score" : 0.015250129,
"abstract" : "Reimplementation of IO::* with improvements",
"path" : "lib/IO/Moose.pm",
"pod_lines" : [
4,
42,
64,
22,
101,
64
],
"status" : "latest"
},
{
"distribution" : "IO-Moose",
"release" : "IO-Moose-0.1004",
"indexed" : true,
"authorized" : true,
"module" : [
{
"indexed" : true,
"associated_pod" : "DEXTER/IO-Moose-0.1004/lib/IO/Moose/File.pm",
"version_numified" : 0.1004,
"version" : "0.1004",
"authorized" : true,
"name" : "IO::Moose::File"
}
],
"description" : "This class provides an interface mostly compatible with IO::File. The differences: * It is based on Moose object framework. * It uses Exception::Base for signaling errors. Most of methods are throwing exception on failure. * It doesn't export any constants. Use Fcntl instead.",
"date" : "2009-10-29T12:15:13",
"documentation" : "IO::Moose::File",
"pod_lines" : [
4,
35,
50,
55,
113,
15,
151,
10,
166,
7,
178,
7,
194,
6,
212,
5,
227,
3,
239,
25,
298,
19,
341,
17,
403,
13,
472,
23,
530,
3,
556,
49
],
"path" : "lib/IO/Moose/File.pm",
"status" : "latest",
"author" : "DEXTER",
"score" : 0.0076501397,
"abstract" : "Reimplementation of IO::File with improvements",
"favorites" : null,
"id" : "6w8sFFTEj54x9nnfx_N8oTkVdzM"
},
{
"score" : 0.0071091284,
"abstract" : "Reimplementation of IO::Handle with improvements",
"author" : "DEXTER",
"status" : "latest",
"pod_lines" : [
4,
50,
66,
23,
93,
5,
103,
5,
111,
5,
119,
3,
151,
10,
172,
7,
192,
5,
205,
5,
217,
6,
232,
5,
246,
7,
260,
8,
275,
6,
288,
16,
335,
3,
350,
18,
419,
25,
627,
8,
662,
22,
748,
6,
781,
3,
806,
3,
829,
3,
851,
3,
898,
3,
935,
3,
962,
3,
994,
3,
1035,
3,
1063,
20,
1108,
6,
1157,
5,
1238,
3,
1288,
8,
1321,
8,
1358,
10,
1392,
8,
1423,
25,
1501,
11,
1537,
8,
1559,
6,
1580,
7,
1612,
6,
1655,
6,
1697,
9,
1746,
7,
1811,
36,
1994,
150
],
"path" : "lib/IO/Moose/Handle.pm",
"id" : "jKduA_Oe4PeOh2tz_ZvGRwB3Bzg",
"favorites" : null,
"authorized" : true,
"release" : "IO-Moose-0.1004",
"indexed" : true,
"distribution" : "IO-Moose",
"date" : "2009-10-29T12:15:13",
"documentation" : "IO::Moose::Handle",
"description" : "This class extends IO::Handle with following differences: * It is based on Moose object framework. * The \"stat\" method returns File::Stat::Moose object. * It uses Exception::Base for signaling errors. Most of methods are throwing exception on failure. * The modifiers like \"input_record_separator\" are supported on per file handle basis. * It also implements additional methods like \"say\", \"slurp\".",
"module" : [
{
"name" : "IO::Moose::Handle",
"authorized" : true,
"version" : "0.1004",
"version_numified" : 0.1004,
"associated_pod" : "DEXTER/IO-Moose-0.1004/lib/IO/Moose/Handle.pm",
"indexed" : true
}
]
},
{
"abstract" : "Reimplementation of IO::Seekable with improvements",
"score" : 0.0065681175,
"author" : "DEXTER",
"status" : "latest",
"path" : "lib/IO/Moose/Seekable.pm",
"pod_lines" : [
4,
39,
54,
39,
97,
15,
138,
35,
201,
8,
234,
5,
267,
6,
298,
12,
351,
42
],
"id" : "1gq5ECPGBLS8P1Mz7Ra9yerYiHo",
"favorites" : null,
"authorized" : true,
"indexed" : true,
"release" : "IO-Moose-0.1004",
"distribution" : "IO-Moose",
"documentation" : "IO::Moose::Seekable",
"date" : "2009-10-29T12:15:13",
"description" : "This class provides an interface mostly compatible with IO::Seekable. The differences: * It is based on Moose object framework. * It uses Exception::Base for signaling errors. Most of methods are throwing exception on failure. * It doesn't export any constants. Use Fcntl instead.",
"module" : [
{
"name" : "IO::Moose::Seekable",
"authorized" : true,
"version" : "0.1004",
"version_numified" : 0.1004,
"associated_pod" : "DEXTER/IO-Moose-0.1004/lib/IO/Moose/Seekable.pm",
"indexed" : true
}
]
},
{
"id" : "D73yBEKZdGu2ITvtv29veFC1ln4",
"favorites" : null,
"score" : -0.0010194199,
"abstract" : "Type for open mode string",
"author" : "DEXTER",
"status" : "latest",
"pod_lines" : [
4,
23,
52,
16
],
"path" : "lib/MooseX/Types/OpenModeStr.pm",
"date" : "2009-10-29T12:15:13",
"documentation" : "MooseX::Types::OpenModeStr",
"description" : "This module provides Moose type which represents open mode string. It can be Perl-style canonical mode string (i.e. \"+>\") or C-style mode string (i.e. \"w+\").",
"module" : [
{
"version" : "0.1004",
"authorized" : true,
"name" : "MooseX::Types::OpenModeStr",
"indexed" : true,
"associated_pod" : "DEXTER/IO-Moose-0.1004/lib/MooseX/Types/OpenModeStr.pm",
"version_numified" : 0.1004
}
],
"authorized" : true,
"release" : "IO-Moose-0.1004",
"indexed" : true,
"distribution" : "IO-Moose"
}
],
"total" : 8,
"distribution" : "IO-Moose"
},
{
"total" : 5,
"hits" : [
{
"description" : "If you use Mo and want to try Moose without adding \"is\" and \"lazy\" options to all your attributes you can just do this: use Mo 'Moose'; use foo => (); and everything should work, but now uses Moose instead of Mo for everything.",
"documentation" : "Mo::Moose",
"id" : "0d4X7el68eEo_ufGGp1Zpo4tqrU",
"date" : "2016-07-06T22:11:23",
"favorites" : 33,
"author" : "TINITA",
"score" : 0.015250129,
"authorized" : true,
"abstract" : "Use Moose instead of Mo",
"distribution" : "Mo",
"path" : "lib/Mo/Moose.pod",
"pod_lines" : [
0,
22
],
"indexed" : true,
"release" : "Mo-0.40",
"status" : "latest"
},
{
"favorites" : 33,
"description" : "use Mo. Mo is less. Much less. Moose is huge. Moose led to Mouse led to Moo led to Mo. M is nothing. Mo is more. Not much. When Moo is more than you need, drop an 'o' and get some Mo. To get just a little Mo from Mo, use \"Mo Features\" below.",
"id" : "Q2_3S0_ozzKkjQam4JrBjjs2nMI",
"documentation" : "Mo",
"date" : "2016-07-06T22:11:23",
"path" : "ReadMe.pod",
"distribution" : "Mo",
"pod_lines" : [
0,
138
],
"indexed" : true,
"release" : "Mo-0.40",
"status" : "latest",
"author" : "TINITA",
"authorized" : true,
"score" : -5.2254063e-06,
"abstract" : "Micro Objects. Mo is less."
},
{
"favorites" : 33,
"description" : "use Mo. Mo is less. Much less. Moose is huge. Moose led to Mouse led to Moo led to Mo. M is nothing. Mo is more. Not much. When Moo is more than you need, drop an 'o' and get some Mo. To get just a little Mo from Mo, use \"Mo Features\" below.",
"documentation" : "Mo",
"id" : "iPV8qi2P07D4X7Zaxiv_SvBi_s0",
"date" : "2016-07-06T22:11:23",
"path" : "lib/Mo.pod",
"distribution" : "Mo",
"pod_lines" : [
0,
138
],
"indexed" : true,
"release" : "Mo-0.40",
"status" : "latest",
"author" : "TINITA",
"abstract" : "Micro Objects. Mo is less.",
"score" : -5.2254063e-06,
"authorized" : true
},
{
"author" : "TINITA",
"abstract" : null,
"score" : -5.3434014e-05,
"authorized" : true,
"distribution" : "Mo",
"path" : "lib/Mo/Hacking.pod",
"pod_lines" : [
0,
43
],
"indexed" : true,
"release" : "Mo-0.40",
"status" : "latest",
"documentation" : "Mo::Hacking",
"id" : "AHgYW4gRDczGGylV50Yq3hTqwXg",
"date" : "2016-07-06T22:11:23",
"favorites" : 33
},
{
"indexed" : true,
"status" : "latest",
"release" : "Mo-0.40",
"path" : "lib/Mo/Design.pod",
"distribution" : "Mo",
"pod_lines" : [
0,
215
],
"authorized" : true,
"score" : -6.2602965e-05,
"abstract" : null,
"author" : "TINITA",
"favorites" : 33,
"documentation" : "Mo::Design",
"id" : "UGIXUFJn_QuT6wn2832yaFjYL3o",
"date" : "2016-07-06T22:11:23"
}
],
"distribution" : "Mo"
},
{
"distribution" : "Any-Moose",
"total" : 1,
"hits" : [
{
"distribution" : "Any-Moose",
"path" : "lib/Any/Moose.pm",
"pod_lines" : [
238,
107
],
"indexed" : true,
"release" : "Any-Moose-0.27",
"status" : "latest",
"author" : "ETHER",
"abstract" : "(DEPRECATED) use Moo instead!",
"score" : 0.014911997,
"authorized" : true,
"module" : [
{
"indexed" : true,
"associated_pod" : "ETHER/Any-Moose-0.27/lib/Any/Moose.pm",
"version_numified" : 0.27,
"version" : "0.27",
"authorized" : true,
"name" : "Any::Moose"
}
],
"favorites" : 6,
"documentation" : "Any::Moose",
"id" : "G6Y89r0fvcKjQig7AF42XChMzbA",
"date" : "2016-11-08T03:37:58"
}
]
},
{
"distribution" : "Lab-Measurement",
"hits" : [
{
"pod_lines" : [
143,
119
],
"path" : "lib/Lab/Moose.pm",
"distribution" : "Lab-Measurement",
"status" : "latest",
"release" : "Lab-Measurement-3.671",
"indexed" : true,
"author" : "AKHUETTEL",
"authorized" : true,
"score" : 0.014911997,
"abstract" : "Convenient loaders and constructors for Lab::Moose::Instrument, Lab::Moose::Sweep, Lab::Moose::DataFolder and Lab::Moose::DataFile",
"favorites" : 2,
"module" : [
{
"indexed" : true,
"associated_pod" : "AKHUETTEL/Lab-Measurement-3.671/lib/Lab/Moose.pm",
"version_numified" : 3.671,
"version" : "3.671",
"authorized" : true,
"name" : "Lab::Moose"
}
],
"date" : "2018-12-07T23:10:57",
"documentation" : "Lab::Moose",
"id" : "6_RXalhD_ZAQ_cEo7dfTgycsLEY"
},
{
"distribution" : "Lab-Measurement",
"indexed" : true,
"release" : "Lab-Measurement-3.671",
"authorized" : true,
"module" : [
{
"name" : "Lab::Moose::Plot",
"authorized" : true,
"version" : "3.671",
"version_numified" : 3.671,
"associated_pod" : "AKHUETTEL/Lab-Measurement-3.671/lib/Lab/Moose/Plot.pm",
"indexed" : true
}
],
"description" : "This is a small wrapper around PDL::Graphics::Gnuplot with the aim to make it accessible with our hash-based calling convention. See the documentation of PDL::Graphics::Gnuplot for the allowed values of terminal-, plot- and curve-options.",
"documentation" : "Lab::Moose::Plot",
"date" : "2018-12-07T23:10:57",
"path" : "lib/Lab/Moose/Plot.pm",
"pod_lines" : [
138,
111
],
"status" : "latest",
"author" : "AKHUETTEL",
"score" : 0.007379634,
"abstract" : "Frontend to PDL::Graphics::Gnuplot",
"favorites" : 2,
"id" : "gXS5AOOE2O6a28z30ouzjV8SmAI"
},
{
"id" : "IDxUYQeFv84eRaNwiaynoYmOKG8",
"favorites" : 2,
"author" : "AKHUETTEL",
"score" : 0.0071091284,
"abstract" : "Base class for high level sweeps",
"path" : "lib/Lab/Moose/Sweep.pm",
"pod_lines" : [
498,
28
],
"status" : "latest",
"description" : "The Sweep interface is documented in Lab::Measurement::Tutorial.",
"documentation" : "Lab::Moose::Sweep",
"date" : "2018-12-07T23:10:57",
"module" : [
{
"version_numified" : 3.671,
"indexed" : true,
"associated_pod" : "AKHUETTEL/Lab-Measurement-3.671/lib/Lab/Moose/Sweep.pm",
"name" : "Lab::Moose::Sweep",
"version" : "3.671",
"authorized" : true
}
],
"authorized" : true,
"distribution" : "Lab-Measurement",
"indexed" : true,
"release" : "Lab-Measurement-3.671"
},
{
"favorites" : 2,
"module" : [
{
"version" : "3.671",
"authorized" : true,
"name" : "Lab::Moose::Catfile",
"indexed" : true,
"associated_pod" : "AKHUETTEL/Lab-Measurement-3.671/lib/Lab/Moose/Catfile.pm",
"version_numified" : 3.671
}
],
"date" : "2018-12-07T23:10:57",
"id" : "1MruKRb_UieGkr8QDbtVDDJcl10",
"documentation" : "Lab::Moose::Catfile",
"pod_lines" : [
24,
28
],
"distribution" : "Lab-Measurement",
"path" : "lib/Lab/Moose/Catfile.pm",
"release" : "Lab-Measurement-3.671",
"status" : "latest",
"indexed" : true,
"author" : "AKHUETTEL",
"score" : 0.0065681175,
"abstract" : "Export custom catfile which avoids backslashes",
"authorized" : true
},
{
"module" : [
{
"version_numified" : 3.671,
"associated_pod" : "AKHUETTEL/Lab-Measurement-3.671/lib/Lab/Moose/DataFile.pm",
"indexed" : true,
"name" : "Lab::Moose::DataFile",
"authorized" : true,
"version" : "3.671"
}
],
"favorites" : 2,
"date" : "2018-12-07T23:10:57",
"id" : "LrG_cgKc6Yxuze0wpHLH7cRPNMA",
"documentation" : "Lab::Moose::DataFile",
"release" : "Lab-Measurement-3.671",
"status" : "latest",
"indexed" : true,
"pod_lines" : [
133,
68
],
"distribution" : "Lab-Measurement",
"path" : "lib/Lab/Moose/DataFile.pm",
"abstract" : "Base class for data file types",
"score" : 0.0062976116,
"authorized" : true,
"author" : "AKHUETTEL"
}
],
"total" : 100
},
{
"distribution" : "Tie-Moose",
"total" : 5,
"hits" : [
{
"distribution" : "Tie-Moose",
"indexed" : true,
"release" : "Tie-Moose-0.003",
"authorized" : true,
"module" : [
{
"authorized" : true,
"version" : "0.003",
"name" : "Tie::Moose",
"associated_pod" : "TOBYINK/Tie-Moose-0.003/lib/Tie/Moose.pm",
"indexed" : true,
"version_numified" : 0.003
}
],
"description" : "This module is much like Tie::MooseObject. It ties a hash to an instance of a Moose-based class, allowing you to access attributes as hash keys. It uses the accessors provided by Moose, and thus honours read-only attributes, type constraints and coercions, triggers, etc. There are a few key differences with Tie::MooseObject: * It handles differently named getters/setters more to my liking. Given the example in the SYNOPSIS, with Tie::MooseObject you need to write: $bob{set_age} = 32; say $bob{get_age}; Whereas with Tie::Moose, you just use the \"age\" hash key for both fetching from and storing to the hash. * Implements \"DELETE\" from the Tie::Hash interface. Tie::MooseObject does not allow keys to be deleted from its hashes. (\"DELETE\" only works on Moose attributes that have a \"clearer\" method.) * Supplied with various traits to influence the behaviour of the tied hash. tie my %bob, \"Tie::Moose\"->with_traits(\"ReadOnly\"), $bob; (Note that by design, many of the traits supplied with Tie::Moose are mutually exclusive.)",
"documentation" : "Tie::Moose",
"date" : "2014-10-02T22:23:35",
"path" : "lib/Tie/Moose.pm",
"pod_lines" : [
174,
101
],
"status" : "latest",
"author" : "TOBYINK",
"abstract" : "tie a hash to a Moose object (yeah, like Tie::MooseObject)",
"score" : 0.014911997,
"favorites" : 2,
"id" : "7WQQ5Doca5okFdVoACSke3BAyTk"
},
{
"description" : "This trait makes the tied hash read-only, even if the underlying object's attributes are read-write. Attempts to store to or delete from the hash will throw an error.",
"date" : "2014-10-02T22:23:35",
"documentation" : "Tie::Moose::ReadOnly",
"module" : [
{
"associated_pod" : "TOBYINK/Tie-Moose-0.003/lib/Tie/Moose/ReadOnly.pm",
"indexed" : true,
"version_numified" : 0.003,
"authorized" : true,
"version" : "0.003",
"name" : "Tie::Moose::ReadOnly"
}
],
"authorized" : true,
"distribution" : "Tie-Moose",
"release" : "Tie-Moose-0.003",
"indexed" : true,
"id" : "28de0WBq4nBjydX1cVL3Mengx6I",
"favorites" : 2,
"author" : "TOBYINK",
"score" : 0.0062976116,
"abstract" : "make tied hash read-only",
"pod_lines" : [
19,
40
],
"path" : "lib/Tie/Moose/ReadOnly.pm",
"status" : "latest"
},
{
"favorites" : 2,
"id" : "_zGiX4sI_zhrmt_Beyxjoduuk4Q",
"pod_lines" : [
32,
66
],
"path" : "lib/Tie/Moose/Forgiving.pm",
"status" : "latest",
"author" : "TOBYINK",
"score" : 0.006027106,
"abstract" : "don't die at the mere mention of an unknown key",
"module" : [
{
"version" : "0.003",
"authorized" : true,
"name" : "Tie::Moose::Forgiving",
"indexed" : true,
"associated_pod" : "TOBYINK/Tie-Moose-0.003/lib/Tie/Moose/Forgiving.pm",
"version_numified" : 0.003
}
],
"description" : "Tie::Moose is very happy to throw exceptions. If, for example, you use a hash key that doesn't correspond to one of the object's attributes, it will croak. Even if you used \"exists\"! This trait prevents read-only accesses from throwing due to unknown attributes. use v5.14; package Person { use Moose; has name => ( is => \"rw\", isa => \"Str\", ); has age => ( is => \"rw\", isa => \"Num\", reader => \"get_age\", writer => \"set_age\", ); } my $bob = Person->new(name => \"Robert\"); tie my %bob, \"Tie::Moose\"->with_traits(\"Forgiving\"), $bob; my $x = $bob{xyz}; # ok ($x is undef) $bob{xyz} = $x; # would croak",
"date" : "2014-10-02T22:23:35",
"documentation" : "Tie::Moose::Forgiving",
"distribution" : "Tie-Moose",
"release" : "Tie-Moose-0.003",
"indexed" : true,
"authorized" : true
},
{
"id" : "A_p1ySjVxso808FJ2opsPZuqW9k",
"favorites" : 2,
"abstract" : "indicate an attribute with a fallback hashref for unknown attributes",
"score" : 0.0052155894,
"author" : "TOBYINK",
"status" : "latest",
"path" : "lib/Tie/Moose/FallbackSlot.pm",
"pod_lines" : [
48,
56
],
"documentation" : "Tie::Moose::FallbackSlot",
"date" : "2014-10-02T22:23:35",
"description" : "This is similar to Tie::Moose::FallbackHash, but instead of *directly* providing a hashref to use as fallback storage, you indicate an attribute name where the hashref can be found.",
"module" : [
{
"version" : "0.003",
"authorized" : true,
"name" : "Tie::Moose::FallbackSlot",
"indexed" : true,
"associated_pod" : "TOBYINK/Tie-Moose-0.003/lib/Tie/Moose/FallbackSlot.pm",
"version_numified" : 0.003
}
],
"authorized" : true,
"indexed" : true,
"release" : "Tie-Moose-0.003",
"distribution" : "Tie-Moose"
},
{
"favorites" : 2,
"id" : "2GQJv1zCIagnBZZNQ5LIFZRez30",
"pod_lines" : [
45,
51
],
"path" : "lib/Tie/Moose/FallbackHash.pm",
"status" : "latest",
"author" : "TOBYINK",
"abstract" : "provide a fallback hashref for unknown attributes",
"score" : 0.0052155894,
"module" : [
{
"name" : "Tie::Moose::FallbackHash",
"version" : "0.003",
"authorized" : true,
"version_numified" : 0.003,
"indexed" : true,
"associated_pod" : "TOBYINK/Tie-Moose-0.003/lib/Tie/Moose/FallbackHash.pm"
}
],
"description" : "Usually if you try to store data against a hash key which does not have a corresponding attribute in the underlying Moose object, Tie::Moose will throw an exception. This module allows you to instead store it into a fallback hash. The fallback hash can itself be a tied hash, or an object which overloads \"%{}\", so this allows for some interesting possibilities.",
"date" : "2014-10-02T22:23:35",
"documentation" : "Tie::Moose::FallbackHash",
"distribution" : "Tie-Moose",
"release" : "Tie-Moose-0.003",
"indexed" : true,
"authorized" : true
}
]
},
{
"hits" : [
{
"author" : "BYTEROCK",
"score" : 0.014573866,
"abstract" : "An object-oriented interface to Moose in what else but Moose.",
"path" : "lib/Acme/Moose.pm",
"pod_lines" : [
4,
31,
39,
11,
62,
11,
92,
8,
113,
7,
144,
15
],
"status" : "latest",
"id" : "l9y2mrpqQXlWEMmIsiT7xhvL8Kc",
"favorites" : null,
"authorized" : true,
"distribution" : "Acme-Moose",
"indexed" : true,
"release" : "Acme-Moose-0.02",
"description" : "This module provides a simplistic, but powerful, interface to a Moose.",
"documentation" : "Acme::Moose",
"date" : "2014-03-09T04:58:54",
"module" : [
{
"version_numified" : 0.02,
"associated_pod" : "BYTEROCK/Acme-Moose-0.02/lib/Acme/Moose.pm",
"indexed" : true,
"name" : "Acme::Moose",
"authorized" : true,
"version" : "0.02"
}
]
}
],
"total" : 1,
"distribution" : "Acme-Moose"
},
{
"distribution" : "Gapp",
"hits" : [
{
"id" : "ssMqzjrFqI0jr_onAPrHE1ufghw",
"favorites" : 3,
"author" : "JHALLOCK",
"score" : 0.014573866,
"abstract" : "Gapp widgets for your Moose classes",
"path" : "lib/Gapp/Moose.pm",
"pod_lines" : [
96,
96
],
"status" : "latest",
"description" : "Gapp::Moose provides sugar for adding Gapp widgets to your Moose classes.",
"documentation" : "Gapp::Moose",
"date" : "2013-04-19T13:02:15",
"module" : [
{
"indexed" : true,
"associated_pod" : "JHALLOCK/Gapp-0.60/lib/Gapp/Moose.pm",
"version_numified" : 0.01,
"version" : "0.01",
"authorized" : true,
"name" : "Gapp::Moose"
}
],
"authorized" : true,
"distribution" : "Gapp",
"indexed" : true,
"release" : "Gapp-0.60"
},
{
"module" : [
{
"version_numified" : 0.6,
"associated_pod" : "JHALLOCK/Gapp-0.60/lib/Gapp/Moose/Role.pm",
"indexed" : true,
"name" : "Gapp::Moose::Role",
"authorized" : true,
"version" : "0.60"
}
],
"description" : "Gapp::Moose::Role provides sugar for adding Gapp widgets to your Moose roles.",
"date" : "2013-04-19T13:02:15",
"documentation" : "Gapp::Moose::Role",
"distribution" : "Gapp",
"release" : "Gapp-0.60",
"indexed" : true,
"authorized" : true,
"favorites" : 3,
"id" : "0v3YLYaCSxoemZyTEOe96hovlU4",
"pod_lines" : [
82,
84
],
"path" : "lib/Gapp/Moose/Role.pm",
"status" : "latest",
"author" : "JHALLOCK",
"score" : 0.0071091284,
"abstract" : "Gapp widgets for your roles"
},
{
"favorites" : 3,
"id" : "WXY7LpiZnoZzhNKi_NUkJUnsJoI",
"status" : "latest",
"pod_lines" : [
92,
100
],
"path" : "lib/Gapp.pm",
"score" : -1.8873598e-05,
"abstract" : "Post-modern Gtk+ applications",
"author" : "JHALLOCK",
"module" : [
{
"indexed" : true,
"associated_pod" : "JHALLOCK/Gapp-0.60/lib/Gapp.pm",
"version_numified" : 0.6,
"version" : "0.60",
"authorized" : true,
"name" : "Gapp"
}
],
"date" : "2013-04-19T13:02:15",
"documentation" : "Gapp",
"description" : "Gapp brings the *post-modern* feel of Moose to Gtk2-Perl. The primary goal of Gapp is to make Perl 5 GUI programming easier and less tedious. With Gapp you can to think more about what you want to do and less about choreographing widgets or keeping them (and your data) up to date. Gapp effectively separates user interface design from business logic and data structures. By defining the appearance and layout of widgets at a single point in your program, your entire application maintains a consistent look and feel. Combining the features of Moose with Gtk2 yields a powerful framework for building GUI applications. Declarative syntax results in code that is clearer and easier to maintain. Roles and traits can by applied to widgets like any other Moose object. New to Gapp? The best place to start is the Gapp::Manual.",
"release" : "Gapp-0.60",
"indexed" : true,
"distribution" : "Gapp",
"authorized" : true
},
{
"status" : "latest",
"pod_lines" : [
117,
56
],
"path" : "lib/Gapp/Util.pm",
"abstract" : "Utility functions for Gapp",
"score" : -3.9247454e-05,
"author" : "JHALLOCK",
"favorites" : 3,
"id" : "CCAgJt5zxzxYAf2pdbfb8a3qyV0",
"release" : "Gapp-0.60",
"indexed" : true,
"distribution" : "Gapp",
"authorized" : true,
"module" : [
{
"authorized" : true,
"version" : "0.60",
"name" : "Gapp::Util",
"associated_pod" : "JHALLOCK/Gapp-0.60/lib/Gapp/Util.pm",
"indexed" : true,
"version_numified" : 0.6
}
],
"date" : "2013-04-19T13:02:15",
"documentation" : "Gapp::Util",
"description" : "Provides utility functions for the Gapp framework"
},
{
"description" : "Actions are chunks of code that know how to display themselves on buttons, menus and other objects. They can be called directly, or used as callbacks.",
"date" : "2013-04-19T13:02:15",
"documentation" : "Gapp::Actions",
"module" : [
{
"version_numified" : 0.6,
"indexed" : true,
"associated_pod" : "JHALLOCK/Gapp-0.60/lib/Gapp/Actions.pm",
"name" : "Gapp::Actions",
"version" : "0.60",
"authorized" : true
}
],
"authorized" : true,
"distribution" : "Gapp",
"release" : "Gapp-0.60",
"indexed" : true,
"id" : "I9_5VSQT5cTwYZqEdxzWCi0ZjrI",
"favorites" : 3,
"author" : "JHALLOCK",
"score" : -5.187167e-05,
"abstract" : "Create Actions for Gapp Applications",
"pod_lines" : [
70,
87
],
"path" : "lib/Gapp/Actions.pm",
"status" : "latest"
}
],
"total" : 48
},
{
"hits" : [
{
"pod_lines" : [
7,
61
],
"path" : "lib/Moose/Test.pm",
"status" : "latest",
"author" : "SARTAK",
"abstract" : "A Test Runner for the Moose test suite",
"score" : 0.014573866,
"favorites" : 2,
"id" : "zqfVBl4QTQgbey2YQpc1vJAkNcI",
"distribution" : "Moose-Test",
"release" : "Moose-Test-0.01",
"indexed" : true,
"authorized" : true,
"module" : [
{
"version_numified" : 0.01,
"indexed" : true,
"associated_pod" : "SARTAK/Moose-Test-0.01/lib/Moose/Test.pm",
"name" : "Moose::Test",
"version" : "0.01",
"authorized" : true
}
],
"description" : "This module provides an abstraction over the Moose test cases such that it makes it easier for them to be re-used in different contexts.",
"date" : "2008-10-02T04:07:39",
"documentation" : "Moose::Test"
},
{
"authorized" : true,
"distribution" : "Moose-Test",
"indexed" : true,
"release" : "Moose-Test-0.01",
"description" : "The meat of the module.",
"documentation" : "Moose::Test::Case",
"date" : "2008-10-02T04:07:39",
"module" : [
{
"associated_pod" : "SARTAK/Moose-Test-0.01/lib/Moose/Test/Case.pm",
"indexed" : true,
"version_numified" : 0.01,
"authorized" : true,
"version" : "0.01",
"name" : "Moose::Test::Case"
}
],
"author" : "SARTAK",
"score" : 0.0071091284,
"abstract" : "An abstraction of a Moose Test script",
"path" : "lib/Moose/Test/Case.pm",
"pod_lines" : [
134,
50
],
"status" : "latest",
"id" : "3pFOkN6E_VdQ1PC_QSnvav1EocM",
"favorites" : 2
}
],
"total" : 2,
"distribution" : "Moose-Test"
},
{
"total" : 1,
"hits" : [
{
"id" : "2jstJeAY__8m3nvROUotoHIhVIE",
"favorites" : null,
"score" : 0.014573866,
"abstract" : "Why Should Object::Tiny get all the Fun",
"author" : "PERIGRIN",
"status" : "latest",
"path" : "lib/Moose/Tiny.pm",
"pod_lines" : [
33,
192
],
"documentation" : "Moose::Tiny",
"date" : "2009-06-14T22:27:00",
"description" : "I was looking at Object::Tiny and thought, wow I bet I could do that really easily with Moose. I was right.",
"module" : [
{
"name" : "Moose::Tiny",
"authorized" : true,
"version" : "0.04",
"version_numified" : 0.04,
"associated_pod" : "PERIGRIN/Moose-Tiny-0.04/lib/Moose/Tiny.pm",
"indexed" : true
}
],
"authorized" : true,
"indexed" : true,
"release" : "Moose-Tiny-0.04",
"distribution" : "Moose-Tiny"
}
],
"distribution" : "Moose-Tiny"
},
{
"hits" : [
{
"date" : "2015-01-08T06:48:58",
"documentation" : "Poet::Moose",
"description" : "Sets certain Moose behaviors for Poet's internal classes. Using this module is equivalent to use Moose; use MooseX::HasDefaults::RO; use MooseX::StrictConstructor; use Method::Signatures::Simple;",
"module" : [
{
"authorized" : true,
"version" : "0.16",
"name" : "Poet::Moose",
"associated_pod" : "JSWARTZ/Poet-0.16/lib/Poet/Moose.pm",
"indexed" : true,
"version_numified" : 0.16
}
],
"authorized" : true,
"release" : "Poet-0.16",
"indexed" : true,
"distribution" : "Poet",
"id" : "z_dLTYpotTISrGs3qaStnUOanP8",
"favorites" : 9,
"abstract" : "Poet Moose policies",
"score" : 0.014573866,
"author" : "JSWARTZ",
"status" : "latest",
"pod_lines" : [
25,
37
],
"path" : "lib/Poet/Moose.pm"
}
],
"total" : 1,
"distribution" : "Poet"
},
{
"total" : 1,
"hits" : [
{
"status" : "latest",
"pod_lines" : [
9,
218
],
"path" : "lib/Task/Moose.pm",
"score" : 0.014573866,
"abstract" : "Moose in a box",
"author" : "DOY",
"favorites" : 3,
"id" : "bGxxaJTQdqUsaHa9iv6FoX_8_0M",
"release" : "Task-Moose-0.03",
"indexed" : true,
"distribution" : "Task-Moose",
"authorized" : true,
"module" : [
{
"version_numified" : 0.03,
"indexed" : true,
"associated_pod" : "DOY/Task-Moose-0.03/lib/Task/Moose.pm",
"name" : "Task::Moose",
"version" : "0.03",
"authorized" : true
}
],
"date" : "2009-09-27T17:58:01",
"documentation" : "Task::Moose",
"description" : "This Task installs Moose and then optionally installs a number of Moose extensions listed below. This list is meant to be comprehensive, so if I missed something please let me know."
}
],
"distribution" : "Task-Moose"
},
{
"hits" : [
{
"release" : "marc-moose-1.0.38",
"status" : "latest",
"indexed" : true,
"pod_lines" : [
14,
148
],
"path" : "lib/MARC/Moose.pm",
"distribution" : "marc-moose",
"score" : 0.014573866,
"abstract" : "Moose based MARC records set of tools",
"authorized" : true,
"author" : "FREDERICD",
"module" : [
{
"name" : "MARC::Moose",
"authorized" : true,
"version" : "1.0.38",
"version_numified" : 1.000038,
"associated_pod" : "FREDERICD/marc-moose-1.0.38/lib/MARC/Moose.pm",
"indexed" : true
}
],
"favorites" : null,
"date" : "2018-04-26T07:28:47",
"id" : "OkMR6OD8xpQZQPA9niO2sexfWzE",
"documentation" : "MARC::Moose"
},
{
"author" : "FREDERICD",
"authorized" : true,
"score" : 0.006838623,
"abstract" : "Marc field base object",
"pod_lines" : [
34,
48
],
"distribution" : "marc-moose",
"path" : "lib/MARC/Moose/Field.pm",
"status" : "latest",
"release" : "marc-moose-1.0.38",
"indexed" : true,
"date" : "2018-04-26T07:28:47",
"id" : "ZkrzMxhfRS3i_RDtY9650xHqdAs",
"documentation" : "MARC::Moose::Field",
"favorites" : null,
"module" : [
{
"authorized" : true,
"version" : "1.0.38",
"name" : "MARC::Moose::Field",
"associated_pod" : "FREDERICD/marc-moose-1.0.38/lib/MARC/Moose/Field.pm",
"indexed" : true,
"version_numified" : 1.000038
}
]
},
{
"author" : "FREDERICD",
"authorized" : true,
"score" : 0.0065681175,
"abstract" : "Base class for a reader returning MARC::Moose records",
"pod_lines" : [
21,
30
],
"distribution" : "marc-moose",
"path" : "lib/MARC/Moose/Reader.pm",
"release" : "marc-moose-1.0.38",
"status" : "latest",
"indexed" : true,
"date" : "2018-04-26T07:28:47",
"documentation" : "MARC::Moose::Reader",
"id" : "xYFczq9Cq14JH9eABhAM_enQ54U",
"favorites" : null,
"module" : [
{
"version_numified" : 1.000038,
"associated_pod" : "FREDERICD/marc-moose-1.0.38/lib/MARC/Moose/Reader.pm",
"indexed" : true,
"name" : "MARC::Moose::Reader",
"authorized" : true,
"version" : "1.0.38"
}
]
},
{
"authorized" : true,
"score" : 0.0065681175,
"abstract" : "A Moose::Role to write somewhere MARC::Moose records",
"author" : "FREDERICD",
"status" : "latest",
"release" : "marc-moose-1.0.38",
"indexed" : true,
"pod_lines" : [
50,
56
],
"path" : "lib/MARC/Moose/Writer.pm",
"distribution" : "marc-moose",
"date" : "2018-04-26T07:28:47",
"documentation" : "MARC::Moose::Writer",
"id" : "rz8TZxAjHGIv1mI3N32I4tyJZRE",
"module" : [
{
"name" : "MARC::Moose::Writer",
"version" : "1.0.38",
"authorized" : true,
"version_numified" : 1.000038,
"indexed" : true,
"associated_pod" : "FREDERICD/marc-moose-1.0.38/lib/MARC/Moose/Writer.pm"
}
],
"favorites" : null
},
{
"module" : [
{
"indexed" : true,
"associated_pod" : "FREDERICD/marc-moose-1.0.38/lib/MARC/Moose/Record.pm",
"version_numified" : 1.000038,
"version" : "1.0.38",
"authorized" : true,
"name" : "MARC::Moose::Record"
}
],
"description" : "MARC::Moose::Record is an object, Moose based object, representing a MARC::Moose bibliographic record. It can be a MARC21, UNIMARC, or whatever biblio record.",
"documentation" : "MARC::Moose::Record",
"date" : "2018-04-26T07:28:47",
"distribution" : "marc-moose",
"indexed" : true,
"release" : "marc-moose-1.0.38",
"authorized" : true,
"favorites" : null,
"id" : "3iS6o4LsB4lJLKpR_56PEJ7qOyg",
"path" : "lib/MARC/Moose/Record.pm",
"pod_lines" : [
200,
162
],
"status" : "latest",
"author" : "FREDERICD",
"score" : 0.0065681175,
"abstract" : "MARC::Moose bibliographic record"
}
],
"total" : 37,
"distribution" : "marc-moose"
},
{
"total" : 14,
"hits" : [
{
"favorites" : 20,
"id" : "BeopfG_oU3_8b6tc_SSi_JSHXe0",
"path" : "lib/Mason/Moose.pm",
"pod_lines" : [
30,
38
],
"status" : "latest",
"author" : "JSWARTZ",
"score" : 0.014235733,
"abstract" : "Mason Moose policies",
"module" : [
{
"authorized" : true,
"version" : "2.24",
"name" : "Mason::Moose",
"associated_pod" : "JSWARTZ/Mason-2.24/lib/Mason/Moose.pm",
"indexed" : true,
"version_numified" : 2.24
}
],
"description" : "Sets certain Moose behaviors for Mason's internal classes. Using this module is equivalent to use CLASS; use Moose; use MooseX::HasDefaults::RO; use MooseX::StrictConstructor; use Method::Signatures::Simple;",
"documentation" : "Mason::Moose",
"date" : "2015-05-16T20:12:09",
"distribution" : "Mason",
"indexed" : true,
"release" : "Mason-2.24",
"authorized" : true
},
{
"description" : "Sets certain Moose behaviors for Mason's internal roles. Using this module is equivalent to use Moose::Role; use Method::Signatures::Simple;",
"documentation" : "Mason::Moose::Role",
"date" : "2015-05-16T20:12:09",
"module" : [
{
"version_numified" : 2.24,
"associated_pod" : "JSWARTZ/Mason-2.24/lib/Mason/Moose/Role.pm",
"indexed" : true,
"name" : "Mason::Moose::Role",
"authorized" : true,
"version" : "2.24"
}
],
"authorized" : true,
"distribution" : "Mason",
"indexed" : true,
"release" : "Mason-2.24",
"id" : "jXZC4tCE8dwn_a26UftMuxpgV1A",
"favorites" : 20,
"author" : "JSWARTZ",
"score" : 0.006838623,
"abstract" : "Mason Moose role policies",
"path" : "lib/Mason/Moose/Role.pm",
"pod_lines" : [
19,
35
],
"status" : "latest"
},
{
"authorized" : true,
"distribution" : "Mason",
"release" : "Mason-2.24",
"indexed" : true,
"description" : "This module is automatically included in each generated Mason component class, and is equivalent to use CLASS; use Moose; use MooseX::HasDefaults::RW; use Method::Signatures::Simple;",
"date" : "2015-05-16T20:12:09",
"documentation" : "Mason::Component::Moose",
"module" : [
{
"indexed" : true,
"associated_pod" : "JSWARTZ/Mason-2.24/lib/Mason/Component/Moose.pm",
"version_numified" : 2.24,
"version" : "2.24",
"authorized" : true,
"name" : "Mason::Component::Moose"
}
],
"author" : "JSWARTZ",
"score" : 0.005486095,
"abstract" : "Moose policies and exports for Mason components",
"pod_lines" : [
28,
54
],
"path" : "lib/Mason/Component/Moose.pm",
"status" : "latest",
"id" : "AOszjr2kNzNZ9jwGxh_xNBqZBtk",
"favorites" : 20
},
{
"module" : [
{
"name" : "Mason",
"authorized" : true,
"version" : "2.24",
"version_numified" : 2.24,
"associated_pod" : "JSWARTZ/Mason-2.24/lib/Mason.pm",
"indexed" : true
}
],
"date" : "2015-05-16T20:12:09",
"documentation" : "Mason",
"description" : "Mason is a powerful Perl-based templating system, designed to generate dynamic content of all kinds. Unlike many templating systems, Mason does not attempt to invent an alternate, \"easier\" syntax for templates. It provides a set of syntax and features specific to template creation, but underneath it is still clearly and proudly recognizable as Perl. Mason is most often used for generating web pages. It has a companion web framework, Poet, designed to take maximum advantage of its routing and content generation features. It can also be used as the templating layer for web frameworks such as Catalyst and Dancer. All documentation is indexed at Mason::Manual. The previous major version of Mason (1.x) is available under the name HTML::Mason.",
"release" : "Mason-2.24",
"indexed" : true,
"distribution" : "Mason",
"authorized" : true,
"favorites" : 20,
"id" : "FdMkhPZaVl12RBOpcsydpOgBaJw",
"status" : "latest",
"pod_lines" : [
46,
85
],
"path" : "lib/Mason.pm",
"score" : -1.9129253e-05,
"abstract" : "Powerful, high-performance templating for the web and beyond",
"author" : "JSWARTZ"
},
{
"authorized" : true,
"distribution" : "Mason",
"release" : "Mason-2.24",
"indexed" : true,
"description" : "Interp is the central Mason object, returned from \"Mason->new\". It is responsible for creating new requests, compiling components, and maintaining the cache of loaded components.",
"date" : "2015-05-16T20:12:09",
"documentation" : "Mason::Interp",
"module" : [
{
"version_numified" : 2.24,
"indexed" : true,
"associated_pod" : "JSWARTZ/Mason-2.24/lib/Mason/Interp.pm",
"name" : "Mason::Interp",
"version" : "2.24",
"authorized" : true
}
],
"author" : "JSWARTZ",
"abstract" : "Mason Interpreter",
"score" : -2.0115922e-05,
"pod_lines" : [
771,
353
],
"path" : "lib/Mason/Interp.pm",
"status" : "latest",
"id" : "MDVvAgS1n_mL44ic_OVlK8zC8Jo",
"favorites" : 20
}
],
"distribution" : "Mason"
},
{
"total" : 1,
"hits" : [
{
"score" : 0.014235733,
"abstract" : "succinctly specify Moose attributes",
"author" : "HDP",
"status" : "latest",
"pod_lines" : [
95,
80
],
"path" : "lib/Moose/Micro.pm",
"id" : "YtgBdywdQWa9qeuVEX73mZk2SxM",
"favorites" : null,
"authorized" : true,
"release" : "Moose-Micro-0.002",
"indexed" : true,
"distribution" : "Moose-Micro",
"date" : "2009-01-25T03:40:34",
"documentation" : "Moose::Micro",
"description" : "Moose::Micro makes it easy to declare Moose attributes without a lot of typing.",
"module" : [
{
"name" : "Moose::Micro",
"version" : "0.002",
"authorized" : true,
"version_numified" : 0.002,
"indexed" : true,
"associated_pod" : "HDP/Moose-Micro-0.002/lib/Moose/Micro.pm"
}
]
}
],
"distribution" : "Moose-Micro"
},
{
"total" : 4,
"hits" : [
{
"status" : "latest",
"path" : "lib/Moose/Policy.pm",
"pod_lines" : [
50,
152
],
"score" : 0.0138976015,
"abstract" : "Moose-mounted police",
"author" : "DROLSKY",
"favorites" : null,
"id" : "9XibszfCX4woadH2XzLhegferCA",
"indexed" : true,
"release" : "Moose-Policy-0.05",
"distribution" : "Moose-Policy",
"authorized" : true,
"module" : [
{
"name" : "Moose::Policy",
"version" : "0.05",
"authorized" : true,
"version_numified" : 0.05,
"indexed" : true,
"associated_pod" : "DROLSKY/Moose-Policy-0.05/lib/Moose/Policy.pm"
}
],
"documentation" : "Moose::Policy",
"date" : "2010-11-21T16:38:44",
"description" : "This module allows you to specify your project-wide or even company-wide Moose meta-policy. Most all of Moose's features can be customized through the use of custom metaclasses, however fiddling with the metaclasses can be hairy. Moose::Policy removes most of that hairiness and makes it possible to cleanly contain a set of meta-level customizations in one easy to use module. This is still an release of this module and it should not be considered to be complete by any means. It is very basic implemenation at this point and will likely get more feature-full over time, as people request features. So if you have a suggestion/need/idea, please speak up. What is a meta-policy? A meta-policy is a set of custom Moose metaclasses which can be used to implement a number of customizations and restrictions on a particular Moose class. For instance, Moose::Policy::SingleInheritence enforces that all specified Moose classes can only use single inheritance. It does this by trapping the call to \"superclasses\" on the metaclass and only allowing you to assign a single superclass. The Moose::Policy::FollowPBP policy changes the default behavior of accessors to fit the recomendations found in Perl Best Practices."
},
{
"id" : "BGiyDSUJyY_M67bp1mY_zaW90PQ",
"favorites" : null,
"score" : 0.0052155894,
"abstract" : "Follow the recomendations in Perl Best Practices",
"author" : "DROLSKY",
"status" : "latest",
"path" : "lib/Moose/Policy/FollowPBP.pm",
"pod_lines" : [
33,
50
],
"documentation" : "Moose::Policy::FollowPBP",
"date" : "2010-11-21T16:38:44",
"description" : "This meta-policy changes Moose's default accessor-naming behavior to follow the recommendations found in Damian Conway's book *Perl Best Practices*.",
"module" : [
{
"authorized" : true,
"name" : "Moose::Policy::FollowPBP",
"indexed" : true,
"associated_pod" : "DROLSKY/Moose-Policy-0.05/lib/Moose/Policy/FollowPBP.pm",
"version_numified" : 0
},
{
"authorized" : true,
"name" : "Moose::Policy::FollowPBP::Attribute",
"indexed" : true,
"version_numified" : 0
}
],
"authorized" : true,
"indexed" : true,
"release" : "Moose-Policy-0.05",
"distribution" : "Moose-Policy"
},
{
"authorized" : true,
"distribution" : "Moose-Policy",
"release" : "Moose-Policy-0.05",
"indexed" : true,
"description" : "This meta-policy changes the behavior of Moose's default behavior in regard to accessors to follow Java convention and use CamelCase.",
"date" : "2010-11-21T16:38:44",
"documentation" : "Moose::Policy::JavaAccessors",
"module" : [
{
"name" : "Moose::Policy::JavaAccessors",
"authorized" : true,
"version_numified" : 0,
"associated_pod" : "DROLSKY/Moose-Policy-0.05/lib/Moose/Policy/JavaAccessors.pm",
"indexed" : true
},
{
"indexed" : true,
"version_numified" : 0,
"authorized" : true,
"name" : "Moose::Policy::JavaAccessors::Attribute"
}
],
"author" : "DROLSKY",
"abstract" : "BeCause EveryOne Loves CamelCase",
"score" : 0.004133567,
"pod_lines" : [
33,
54
],
"path" : "lib/Moose/Policy/JavaAccessors.pm",
"status" : "latest",
"id" : "Cj8VHYaJKrv2dbj0XOAPjVM6L9w",
"favorites" : null
},
{
"release" : "Moose-Policy-0.05",
"indexed" : true,
"distribution" : "Moose-Policy",
"authorized" : true,
"module" : [
{
"name" : "Moose::Policy::SingleInheritence",
"authorized" : true,
"version_numified" : 0,
"associated_pod" : "DROLSKY/Moose-Policy-0.05/lib/Moose/Policy/SingleInheritence.pm",
"indexed" : true
},
{
"version_numified" : 0,
"indexed" : true,
"name" : "Moose::Policy::SingleInheritence::MetaClass",
"authorized" : true
}
],
"date" : "2010-11-21T16:38:44",
"documentation" : "Moose::Policy::SingleInheritence",
"description" : "This module restricts Moose's \"extends\" keyword so that you can only assign a single superclass. This is mostly an example of how you can restrict behavior with meta-policies in addition to extending and/or customising them. However, sometimes enforcing a policy like this can be a good thing.",
"status" : "latest",
"pod_lines" : [
21,
58
],
"path" : "lib/Moose/Policy/SingleInheritence.pm",
"score" : 0.0030515448,
"abstract" : "Why would you ever need more than one?",
"author" : "DROLSKY",
"favorites" : null,
"id" : "LHZebpgwFbbvogG3f8XYGzv8dN0"
}
],
"distribution" : "Moose-Policy"
},
{
"total" : 14,
"hits" : [
{
"distribution" : "Moose-Autobox",
"indexed" : true,
"release" : "Moose-Autobox-0.16",
"authorized" : true,
"module" : [
{
"name" : "Moose::Autobox",
"version" : "0.16",
"authorized" : true,
"version_numified" : 0.16,
"indexed" : true,
"associated_pod" : "ETHER/Moose-Autobox-0.16/lib/Moose/Autobox.pm"
}
],
"description" : "Moose::Autobox provides an implementation of SCALAR, ARRAY, HASH & CODE for use with autobox. It does this using a hierarchy of roles in a manner similar to what Perl 6 *might* do. This module, like Class::MOP and Moose, was inspired by my work on the Perl 6 Object Space, and the 'core types' implemented there. A quick word about autobox The autobox module provides the ability for calling 'methods' on normal Perl values like Scalars, Arrays, Hashes and Code references. This gives the illusion that Perl's types are first-class objects. However, this is only an illusion, albeit a very nice one. I created this module because autobox itself does not actually provide an implementation for the Perl types but instead only provides the 'hooks' for others to add implementation too. Is this for real? or just play? Several people are using this module in serious applications and it seems to be quite stable. The underlying technologies of autobox and Moose::Role are also considered stable. There is some performance hit, but as I am fond of saying, nothing in life is free. Note that this hit only applies to the *use* of methods on native Perl values, not the mere act of loading this module in your namespace. If you have any questions regarding this module, either email me, or stop by #moose on irc.perl.org and ask around. Adding additional methods Moose::Autobox asks autobox to use the Moose::Autobox::* namespace prefix so as to avoid stepping on the toes of other autobox modules. This means that if you want to add methods to a particular perl type (i.e. - monkeypatch), then you must do this: sub Moose::Autobox::SCALAR::bar { 42 } instead of this: sub SCALAR::bar { 42 } as you would with vanilla autobox.",
"documentation" : "Moose::Autobox",
"date" : "2016-05-03T01:34:52",
"path" : "lib/Moose/Autobox.pm",
"pod_lines" : [
80,
175
],
"status" : "latest",
"author" : "ETHER",
"score" : 0.013559469,
"abstract" : "Autoboxed wrappers for Native Perl datatypes",
"favorites" : 7,
"id" : "uozLvmYKaNjkVDSIW3EG_rmwNZs"
},
{
"documentation" : "Moose::Autobox::Ref",
"date" : "2016-05-03T01:34:52",
"description" : "This is a role to describes a reference value.",
"module" : [
{
"associated_pod" : "ETHER/Moose-Autobox-0.16/lib/Moose/Autobox/Ref.pm",
"indexed" : true,
"version_numified" : 0.16,
"authorized" : true,
"version" : "0.16",
"name" : "Moose::Autobox::Ref"
}
],
"authorized" : true,
"indexed" : true,
"release" : "Moose-Autobox-0.16",
"distribution" : "Moose-Autobox",
"id" : "bsQ_aNwXy7ehNEtaI6mtgwlBskY",
"favorites" : 7,
"score" : 0.0065681175,
"abstract" : "the Ref role",
"author" : "ETHER",
"status" : "latest",
"path" : "lib/Moose/Autobox/Ref.pm",
"pod_lines" : [
13,
47
]
},
{
"release" : "Moose-Autobox-0.16",
"indexed" : true,
"distribution" : "Moose-Autobox",
"authorized" : true,
"module" : [
{
"version" : "0.16",
"authorized" : true,
"name" : "Moose::Autobox::Code",
"indexed" : true,
"associated_pod" : "ETHER/Moose-Autobox-0.16/lib/Moose/Autobox/Code.pm",
"version_numified" : 0.16
}
],
"date" : "2016-05-03T01:34:52",
"documentation" : "Moose::Autobox::Code",
"description" : "This is a role to describe operations on the Code type.",
"status" : "latest",
"pod_lines" : [
52,
106
],
"path" : "lib/Moose/Autobox/Code.pm",
"score" : 0.0062976116,
"abstract" : "the Code role",
"author" : "ETHER",
"favorites" : 7,
"id" : "vhnzAuweo_J5GtkxXfU7LXPyVO8"
},
{
"distribution" : "Moose-Autobox",
"indexed" : true,
"release" : "Moose-Autobox-0.16",
"authorized" : true,
"module" : [
{
"version" : "0.16",
"authorized" : true,
"name" : "Moose::Autobox::Item",
"indexed" : true,
"associated_pod" : "ETHER/Moose-Autobox-0.16/lib/Moose/Autobox/Item.pm",
"version_numified" : 0.16
}
],
"description" : "This is the root of our role hierarchy.",
"documentation" : "Moose::Autobox::Item",
"date" : "2016-05-03T01:34:52",
"path" : "lib/Moose/Autobox/Item.pm",
"pod_lines" : [
21,
67
],
"status" : "latest",
"author" : "ETHER",
"score" : 0.0062976116,
"abstract" : "the Item role",
"favorites" : 7,
"id" : "EW7TjVWwlscTokcJOLP2x9hL21M"
},
{
"indexed" : true,
"release" : "Moose-Autobox-0.16",
"distribution" : "Moose-Autobox",
"authorized" : true,
"module" : [
{
"name" : "Moose::Autobox::List",
"authorized" : true,
"version" : "0.16",
"version_numified" : 0.16,
"associated_pod" : "ETHER/Moose-Autobox-0.16/lib/Moose/Autobox/List.pm",
"indexed" : true
}
],
"documentation" : "Moose::Autobox::List",
"date" : "2016-05-03T01:34:52",
"description" : "This is a role to describes a List interface. This is not meant to be any specific Perl type, but instead an interface that certain Perl types might implement. Currently only Moose::Autobox::Array implements this.",
"status" : "latest",
"path" : "lib/Moose/Autobox/List.pm",
"pod_lines" : [
42,
80
],
"score" : 0.0062976116,
"abstract" : "the List role",
"author" : "ETHER",
"favorites" : 7,
"id" : "6vKMKMDVLyva7BYeoqCoNZeKXBU"
}
],
"distribution" : "Moose-Autobox"
},
{
"hits" : [
{
"author" : "DROLSKY",
"score" : 0.013559469,
"abstract" : "A distro that contains stubs for documentation which has moved.",
"pod_lines" : [
9,
29
],
"path" : "lib/Moose/OldDocs.pm",
"status" : "latest",
"id" : "ML3KvjMAb___KcTWo5b_h7K3LXg",
"favorites" : null,
"authorized" : true,
"distribution" : "Moose-OldDocs",
"release" : "Moose-OldDocs-0.04",
"indexed" : true,
"description" : "All of the recipes in the Moose cookbook were renamed. This distro provides links for the old recipe names for metacpan and search.cpan.org. There is no reason to install this distro.",
"date" : "2012-05-27T22:09:35",
"documentation" : "Moose::OldDocs",
"module" : [
{
"associated_pod" : "DROLSKY/Moose-OldDocs-0.04/lib/Moose/OldDocs.pm",
"indexed" : true,
"version_numified" : 0.04,
"authorized" : true,
"version" : "0.04",
"name" : "Moose::OldDocs"
}
]
},
{
"pod_lines" : [
6,
27
],
"path" : "lib/Moose/Cookbook/Meta/Recipe6.pod",
"distribution" : "Moose-OldDocs",
"status" : "latest",
"release" : "Moose-OldDocs-0.04",
"indexed" : true,
"author" : "DROLSKY",
"score" : 0.0035925559,
"abstract" : "Renamed to Moose::Cookbook::Meta::PrivateOrPublic_MethodMetaclass",
"authorized" : true,
"favorites" : null,
"description" : "Renamed to Moose::Cookbook::Meta::PrivateOrPublic_MethodMetaclass",
"date" : "2012-05-27T22:09:35",
"documentation" : "Moose::Cookbook::Meta::Recipe6",
"id" : "yj1B0yE1jdlwkWTwPM1ReaAxdF4"
},
{
"description" : "Renamed to Moose::Cookbook::Meta::WhyMeta",
"date" : "2012-05-27T22:09:35",
"id" : "JQwFcoEHXTMb2S8WtbJ_a1zBD1k",
"documentation" : "Moose::Cookbook::Meta::Recipe1",
"favorites" : null,
"author" : "DROLSKY",
"authorized" : true,
"score" : 0.0035925559,
"abstract" : "Renamed to Moose::Cookbook::Meta::WhyMeta",
"pod_lines" : [
6,
27
],
"distribution" : "Moose-OldDocs",
"path" : "lib/Moose/Cookbook/Meta/Recipe1.pod",
"release" : "Moose-OldDocs-0.04",
"status" : "latest",
"indexed" : true
},
{
"status" : "latest",
"release" : "Moose-OldDocs-0.04",
"indexed" : true,
"pod_lines" : [
6,
27
],
"distribution" : "Moose-OldDocs",
"path" : "lib/Moose/Cookbook/Meta/Recipe2.pod",
"score" : 0.0035925559,
"authorized" : true,
"abstract" : "Renamed to Moose::Cookbook::Legacy::Labeled_AttributeMetaclass",
"author" : "DROLSKY",
"favorites" : null,
"date" : "2012-05-27T22:09:35",
"id" : "iYGsKvsvOITH6KhpYkVurpR7PVY",
"documentation" : "Moose::Cookbook::Meta::Recipe2",
"description" : "Renamed to Moose::Cookbook::Legacy::Labeled_AttributeMetaclass"
},
{
"author" : "DROLSKY",
"score" : 0.0035925559,
"abstract" : "Renamed to Moose::Cookbook::Meta::GlobRef_InstanceMetaclass",
"authorized" : true,
"pod_lines" : [
6,
27
],
"path" : "lib/Moose/Cookbook/Meta/Recipe7.pod",
"distribution" : "Moose-OldDocs",
"release" : "Moose-OldDocs-0.04",
"status" : "latest",
"indexed" : true,
"description" : "Renamed to Moose::Cookbook::Meta::GlobRef_InstanceMetaclass",
"date" : "2012-05-27T22:09:35",
"documentation" : "Moose::Cookbook::Meta::Recipe6",
"id" : "q2qWCYBYnH8zBSxsCt7idPxfbkg",
"favorites" : null
}
],
"total" : 26,
"distribution" : "Moose-OldDocs"
},
{
"distribution" : "MetaCPAN-Moose",
"total" : 1,
"hits" : [
{
"path" : "lib/MetaCPAN/Moose.pm",
"pod_lines" : [
14,
38
],
"status" : "latest",
"author" : "OALDERS",
"abstract" : "Use Moose the MetaCPAN way",
"score" : 0.013221337,
"favorites" : null,
"id" : "UKZ5AgUXtBjblV9uTR4fTjLJ5lQ",
"distribution" : "MetaCPAN-Moose",
"indexed" : true,
"release" : "MetaCPAN-Moose-0.000003",
"authorized" : true,
"module" : [
{
"version_numified" : 3e-06,
"indexed" : true,
"associated_pod" : "OALDERS/MetaCPAN-Moose-0.000003/lib/MetaCPAN/Moose.pm",
"name" : "MetaCPAN::Moose",
"version" : "0.000003",
"authorized" : true
}
],
"description" : "MetaCPAN::Moose automatically imports MooseX::StrictConstructor and namespace::autcolean for you.",
"documentation" : "MetaCPAN::Moose",
"date" : "2016-09-08T01:49:44"
}
]
},
{
"distribution" : "Array-To-Moose",
"hits" : [
{
"authorized" : true,
"indexed" : true,
"release" : "Array-To-Moose-v0.0.9",
"distribution" : "Array-To-Moose",
"documentation" : "Array::To::Moose",
"date" : "2015-09-21T22:24:50",
"description" : "As shown in the above examples, the general usage is: package MyClass; use Moose; (define Moose object(s)) ... use Array::To::Moose; ... my $data_ref = selectall_arrayref($sql); # for example my $object_ref = array_to_moose( data => $data_ref desc => { class => 'MyClass', key => K, # only for HashRefs attrib_1 => N1, attrib_2 => N2, ... attrib_m => [ M ], ... SubObject => { class => 'MySubClass', ... } } ); Where: \"array_to_moose()\" returns an array- or hash reference of \"MyClass\" Moose objects. All Moose classes (\"MyClass\", \"MySubClass\", etc) must already have been defined by the user. $data_ref is a reference to an array containing references to arrays of scalars of the kind returned by, e.g., DBI::selectall_arrayref() \"desc\" (descriptor) is a reference to a hash which contains several types of data: \"class =>\" 'MyObj' is *required* and defines the Moose class or package which will contain the data. The user should have defined this class already. \"key => N \" is required if the Moose object being constructed is to be a hashref, either at the top-level Moose object returned from \"array_to_moose()\" or as a \"\"isa => 'HashRef[...]'\"\" sub-object. \"attrib => N \" where \"attrib\" is the name of a Moose attribute (\"\"has 'attrib' =>\" ...\") \"attrib => [ N ] \" where \"attrib\" is the name of a Moose \"simple\" sub-attribute (\"\"has => 'attrib' ( isa => 'ArrayRef[Type]' ...)\" \"), where \"Type\" is a \"simple\" Moose type, e.g., 'Str', 'Int', etc. In the above cases, \"N\" is a positive integer containing the the corresponding zero-indexed column number in the data array where that attribute's data is to be found. Sub-Objects \"array_to_moose()\" can handle three types of Moose sub-objects, i.e.: an array of sub-objects: has => 'Sub_Obj' ( isa => 'ArrayRef[MyObj]' ); a hash of sub-objects: has => 'Sub_Obj' ( isa => 'HashRef[MyObj]' ); or a single sub-object: has => 'Sub_Obj' ( isa => 'MyObj' ); the descriptor entry for \"Sub_Obj\" in each of these cases is (almost) the same: desc => { class => ... ... Sub_Obj => { class => 'MyObj', key => <keycol> # HashRef['] only attrib_a => <N>, ... } # end SubObj ... } # end desc (A \"HashRef[']\" sub-object will also *require* a \"key => N\" entry in the descriptor). In addition, \"array_to_moose()\" can also handle \"ArrayRef\"s of \"simple\" types: has => 'Sub_Obj' ( isa => 'ArrayRef[Type]' ); where \"Type\" is a \"simple\" Moose type, e.g., 'Str', 'Int, 'Bool', etc. Ordering the data \"array_to_moose()\" does not sort the input data array, and does all processing in a single pass through the data. This means that the data in the array must be sorted properly for the algorithm to work. For example, in the previous Patient/Visit/Test example, in which there are many *Test*s per *Visit* and many *Visit*s per *Patient*, the data in the *Test* column(s) must change the fastest, the *Visit* data slower, and the *Patient* data the slowest: Patient Visit Test ------ ----- ---- P1 V1 T1 P1 V1 T2 P1 V1 T3 P1 V2 T4 P1 V2 T5 P2 V3 T6 P2 V3 T7 P2 V4 T8 In SQL this would be accomplished by a \"SORT BY\" clause, e.g.: SORT BY Patient.Key, Visit.Key, Test.Key throw_nonunique_keys () By default, \"array_to_moose()\" does not check the uniqueness of hash key values within the data. If the key values in the data are not unique, existing hash entries will get overwritten, and the sub-object will contain the value from the last data row which contained that key value. For example: package Employer; use Moose; has 'year' => (is => 'rw', isa => 'Str'); has 'name' => (is => 'rw', isa => 'Str'); package Person; use Moose; has 'name' => (is => 'rw', isa => 'Str' ); has 'Employers' => (is => 'rw', isa => 'HashRef[Employer]'); ... my $data = [ [ 'Anne Miller', '2005', 'Acme Corp' ], [ 'Anne Miller', '2006', 'Acme Corp' ], [ 'Anne Miller', '2007', 'Widgets, Inc' ], ... ]; The call: my $obj = array_to_moose( data => $data, desc => { class => 'Person', name => 0, Employers => { class => 'Employer', key => 2, # using employer name as key year => 1, } # Employer } # Person ); Because the employer was 'Acme Corp' in years 2005 & 2006, \"array_to_moose\" will silently overwrite the 2005 Employer object with the data for the 2006 Employer object: print $obj->[0]->Employers->{'Acme Corp'}->year, \"\\n\"; # prints '2006' Calling \"throw_uniq_keys()\" (either with no argument, or with a non-zero argument) enables reporting of non-unique keys. In the above example, \"array_to_moose()\" would exit with warning: Non-unique key 'Acme Corp' in 'Employer' class ... Calling throw_uniq_keys(0), i.e. with an argument of zero will disable subsequent reporting of non-unique keys. (See t/8c.t) throw_multiple_rows () For single-occurence sub-objects (i.e. \"( isa => 'MyObj' )\"), if the data contains more than one row of data for the sub-object, only the first row will be used to construct the single sub-object and \"array_to_moose()\" will not report the fact. E.g.: package Salary; use Moose; has 'year' => (is => 'rw', isa => 'Str'); has 'amount' => (is => 'rw', isa => 'Int'); package Person; use Moose; has 'name' => (is => 'rw', isa => 'Str' ); has 'Salary' => (is => 'rw', isa => 'Salary'); # a single object ... my $data = [ [ 'John Smith', '2005', 23_350 ], [ 'John Smith', '2006', 24_000 ], [ 'John Smith', '2007', 26_830 ], ... ]; The call: my $obj = array_to_moose( data => $data, desc => { class => 'Person' name => 0, Salary => { class => 'Salary', year => 1, amount => 2 } # Salary } # Person ); would silently assign to \"Salary\", the first row of the three Salary data rows, i.e. for year 2005: print $object->[0]->Salary->year, \"\\n\"; # prints '2005' Calling \"throw_multiple_rows()\" (either with no argument, or with a non-zero argument) enables reporting of this situation. In the above example, \"array_to_moose()\" will exit with error: Expected a single 'Salary' object, but got 3 of them ... Calling throw_multiple_rows(0), i.e. with an argument of zero will disable subsequent reporting of this error. (See t/8d.t) set_class_ind (), set_key_ind () Problems arise if the Moose objects being constructed contain attributes called *class* or *key*, causing ambiguities in the descriptor. (Does \"key => 5\" mean the *attribute* \"key\" or the *hash key* \"key\" is in the 5th column?) In these cases, \"set_class_ind()\" and \"set_key_ind()\" can be used to change the keywords for \"class => ...\" and \"key => ...\" descriptor entries. For example: package Letter; use Moose; has 'address' => ( is => 'ro', isa => 'Str' ); has 'class' => ( is => 'ro', isa => 'PostalClass' ); ... set_key_ind('package'); # use \"package =>\" in place of \"class =>\" my $letters = array_to_moose( data => $data, desc => { package => 'Letter', # the Moose class address => 0, class => 1, # the attribute 'class' ... } ); Read-only Attributes One of the recommendations of Moose::Manual::BestPractices is to make attributes read-only (\"isa => 'ro'\") wherever possible. \"Array::To::Moose\" supports this by evaluating all the attributes for a given object given in the descriptor, then including them all in the call to \"new(...)\" when constructing the object. For Moose objects with attributes which are sub-objects, i.e. references to a Moose object, or references to an array or hash of Moose objects, it means that the sub-objects must be evaluated before the \"new()\" call. The effect of this for multi-leveled Moose objects is that object evaluations are carried out depth-first. Treatment of \"NULL\"s \"array_to_moose()\" uses Array::GroupBy::igroup_by to compare the rows in the data given in \"data => ...\", using function Array::GroupBy::str_row_equal() which compares the data as *strings*. If the data contains \"undef\" values, typically returned from database SQL queries in which DBI maps NULL values to \"undef\", when \"str_row_equal()\" encounters \"undef\" elements in *corresponding* column positions, it will consider the elements \"equal\". When *corresponding* column elements are defined and \"undef\" respectively, the elements are considered \"unequal\". This truth table demonstrates the various combinations: -------+------------+--------------+--------------+-------------- row 1 | ('a', 'b') | ('a', undef) | ('a', undef) | ('a', 'b' ) row 2 | ('a', 'b') | ('a', undef) | ('a', 'b' ) | ('a', undef) -------+------------+--------------+--------------+-------------- equal? | yes | yes | no | no",
"module" : [
{
"name" : "Array::To::Moose",
"authorized" : true,
"version" : "v0.0.9",
"version_numified" : 9e-06,
"associated_pod" : "SAMB/Array-To-Moose-v0.0.9/lib/Array/To/Moose.pm",
"indexed" : true
}
],
"score" : 0.007379634,
"abstract" : "Build Moose objects from a data array",
"author" : "SAMB",
"status" : "latest",
"path" : "lib/Array/To/Moose.pm",
"pod_lines" : [
558,
627
],
"id" : "Rx0C4G_ChcAxJhoJZS9Wg5geHBY",
"favorites" : 3
}
],
"total" : 1
}
],
"collapsed" : true,
"took" : 88
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment