view release on metacpan or search on metacpan
lib/Acme/CreatingCPANModules.pm view on Meta::CPAN
module to be installed, that's where you defined that. Just add the
name of the module to that hash and put the minimum version number of
the module that you require.
[slide] Next we have the README. What you put in the README is, once
again, up to you. I always put the same documentation from the main
module, some people just put a template README in all their
distributions.
Whatever you do, don't forget to update the README at least once, as
it's the file many users look at and the default documentation can be
kind of... embarassing ;-)
[slide] And now we finally have our module!
The module is comprised of two things: code and documentation.
Both are equally important.
I can't stress how much.
lib/Acme/CreatingCPANModules.pm view on Meta::CPAN
We're not staying for a long time at this slide because we'll have the
time to do so in the demo, right after this.
[slide] And now we're at the first test file.
Currently, through C<Test::More>, it checks to see if the module loads
correctly. It also diagnoses what it's doing.
[slide] Then we have another test file, which was recently introduced,
to check if files like README and Changes have content written by you
or are just the default templates.
[slide] The next one is checks if you're documenting all your public
functions. It assumes that if you have a private function (that is, a
function that's not meant for the public but rather to be used by your
other functions) you will name it something commencing with an
underscore.
This means that you need a section with the name of each function that
doesn't begin with an underscore.
slides/index.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide1.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide10.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide11.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide12.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide13.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide14.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide15.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide16.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide17.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide18.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide19.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide1a.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide1b.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide1c.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide1d.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide1e.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide2.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide20.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide21.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide22.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide23.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide24.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide25.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide26.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide2a.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide2b.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide2c.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">
slides/slide2d.html view on Meta::CPAN
}
switch(key) {
case 8: prevSlide(); break
case 13: nextSlide(); break
case 32: nextSlide(); break
case 81: closeSlide(); break
case 105: indexSlide(); break
case 110: nextSlide(); break
case 112: prevSlide(); break
case 115: startSlide(); break
default: //xxx(e.which)
}
}
document.onkeypress = handleKey
// END controls.js
</script>
</head>
<body>
<div id="topbar">