1. Install ExtUtils::ModuleMaker from CPAN. 2. Download MM-0.02-code-fragments.tar.gz and MM-0.03-code-fragments.tar.gz. 3. For now, unpack only MM-0.02-code-fragments.tar.gz. When unpacked, the code fragments will be found in a directory called 'f'. 4. Change into a working directory. 'f' will work as well as any other. 5. Call 'modulemaker' and follow the prompts. You must enter a name for your module; 'My::Module' is suggested but not mandatory. Respond to as many of the other prompts as you choose. Finish by generating the module with 'G', followed by [Enter]. 6. Change into the directory where the Makefile.PL is located (or, if you chose Module-Build instead of ExtUtils-ModuleMaker, the directory where Build.PL is located). Call the following: perl Makefile.PL make make test ... or their Module-Build equivalents. 7. Inspect the directories and files you just created. Pay particular attention to lib/My/Module.pm, t/001_load.t and Makefile.PL. 8. Call: make dist make clean ... to generate a tarball and clean up files created by 'make'. 9. Since we want to do substantial revisions to our module, let's up the version number to 0.02. To do so, edit lib/My/Module.pm and change $VERSION to 0.02. 10. Revisions can be done by copying the fragments from folder 'f' into the files being edited. Here's the sequence: a. Changes: changes.0.02 b. lib/My/Module.pm: abstract.0.02 synopsis.0.02 description.0.02 [ perl -c % ] c. README (delete all content, then ...) README.0.02 d. t/001_load.t: no_plan.0.02 setup_test_lists.0.02 get_union_tests.0.02 [ perl -c % ] e. lib/My/Module.pm: BEGIN.0.02 get_union.0.02 return_true.0.02 BUGS.0.02 [ perl -c % ] 11. Repeat steps 6 and 7. If any of your tests failed, debug the failures and repeat. 12. When you're satisfied, repeat step 8 to create a tarball for version 0.02. 13. As an exercise, unpack MM-0.03-code-fragments.tar.gz. It creates a folder called 'g' with additional code fragments. Increase $VERSION to 0.03, then repeat steps 9, 10 and 11 with the new code fragments. But beware: The new code fragments may contain errors which you will have to debug.