Proposal

Randal L. Schwartz and brian d foy intend to write ``Learning Perl 6'' to be the introductory text for the next major version of Perl. This book will not replace ``Learning Perl, Fourth Edition'' (for Perl 5), but sell along side it as people continue to use both major versions of the Perl language. ``Learning Perl 6'' will distinguish itself from ``Learning Perl'' with the Perl version in the title and other book marketing.

We intend to write ``Learning Perl 6'' as if Perl 6 is a completely new language rather than simply updating ``Learning Perl, Fourth Edition''. Since Perl 6 is a very different language, if we don't constrain ourselves to what we've written previously we can present Perl 6 in the best possible way. This does not exclude us from re-using text in ``Learning Perl'', however.

What will this book be good for?

This book teaches the programmer the basics of writing short programs using Perl 6. It is the programmer's introduction to the new major version of Perl, and will be the only book on the market to cover it.

The market for the book.

We anticipate two major markets for this book, both of which assume prior programming experience:

1) The current Perl programmer who wants to learn Perl 6. This is a very large market segment containing everyone currently using Perl, including intermediate and advanced programmers who would not normally be part of the beginner book market. Perl 6 is so different than Perl 5 that it can be like starting a new language for most current Perl practitioners.

2) People new to Perl who are starting with Perl 6. We expect this market to be small initially, and grow significantly as Perl 6 takes over real production work from Perl 5.

A previous O'Reilly book, ``Perl 6 Essentials'', could perhaps cover part of the first market, but was last updated in 2004.

The outline

Our target length is 300 pages (excluding indices and other standard material). We want each chapter to be about 25 pages, including end of chapter exercises. We'll use the format of ``Learning Perl, 4th Edition''.

This outline also assumes that we'll write ``Intermediate Perl 6'' and include the topics of module creation and other advanced features to that title.

Introduction
Scalars

The basic Perl 6 data type, the scalar, and how Perl 6 stores data. This section will also include some other topics, such as basic conditional statements and output operators, to get the reader writing simple programs as soon as possible.

Lists and Arrays

A collection of scalars, and the operators that work on them.

Subroutines

Defining and using re-usable bits of code within your program.

Input and Output

More details on taking input from a user or a file, and more ways to send output back to the user or into a file.

Hashes

Mapping one set of data onto another using hashes, and the operators that work on them.

In the World of Rules

The basics of rules, formally known as regular expressions, and how they describe sets of strings.

Matching with Rules

Applying a rule to a string and getting results, including extracting information from the string.

Processing Text with Rules

Using operators that take a rule as an argument.

More Control Structures
Files

Dealing with files, including creating, reading, and writing them, as well as getting information about them.

Directory Operations
Strings and Sorting
Process Management

Interacting with external programs and using Perl 6 to control or glue together other applications.

Perl Modules

The basics of installing and working with Perl 6 modules, as well as showing the modules for popular tasks.

Some Advanced Perl Techniques
Further reading

This chapter is a short tour of the available literature on related topics. It includes pointers to the Perl 6 documentation, relevant articles in magazines and web sites, and any other relevant sources. This section will be a short ``field guide'' to the online Perl 6 resources with tips on how to read them.

Exercise Answers

We include full solutions to each of the exercises at the end of each chapter.

Schedule

We'd like to make our best effort at making this book available at OSCON 2007, although everything has to happen just right for that to happen. We're willing to devote the majority of our time to writing during the first half of 2007 to meet this goal. We'd have to stick to this schedule:

        Two chapters: Jan 15, 2007
        Half chapters: March 1, 2007
        
        All chapters: May 1, 2007

Ignoring the goal of an OSCON debut, we would follow this schedule:

        Two chapters: Feb 1, 2007
        
        Half chapters: May 1, 2007
        
        All chapters: July 1, 2007

A third possibility of publishing ``Learning Perl 6'' simultaneously with ``Programming Perl 6'' (a much larger and longer task) could have a different schedule. We intend to have ``Learning Perl 6'' ready before ``Programming Perl 6'' in any case and despite the publication schedule.

The continuing development of the Perl 6 language, which is out of our control, may impact the schedule as we revise the text and examples for the latest development. We think that the basic topics we cover are mostly stable and we do not anticipate major changes, but we shouldn't ignore the possibility either.

Advance payments

Neither of us want an advance payment.

Our writing samples

Randal Schwartz has written ``Learning Perl'' (3 editions), ``Learning Perl for Win32'', ``Perl Objects, References, & Modules'', ``Programming perl (1st Edition)'', and ``Intermediate Perl'' for O'Reilly Media.

brian d foy co-authored ``Learning Perl, 4th Edition'', ``Intermediate Perl'', and ``Mastering Perl'' (in progress) and has written several articles for the O'Reilly Network, The Perl Journal, and The Perl Review. A full list of previous publications is on his web page: http://www.pair.com/~comdog/

Tools

We would like to work in POD, which we've done for all of our previous books. We can keep our sources in Allison Randal's subversion repository that also holds our ``Learning Perl'' and ``Intermediate Perl'' sources.

Who we are

Randal Schwartz

Randal L. Schwartz is a two-decade veteran of the software industry -- skilled in software design, system administration, security, technical writing, and training. He has coauthored the ``must-have'' standards: Programming Perl, Learning Perl, Learning Perl's Objects, References, and Modules, Learning Perl for Win32 Systems, and Effective Perl Programming, as well as writing regular columns for WebTechniques, PerformanceComputing, SysAdmin, and Linux magazines, and the electronic version of The Perl Journal. He's also a frequent contributor to the Perl newsgroups and the Perl Monastery (perlmonks.org), and has moderated comp.lang.perl.announce since its inception. His offbeat humor and technical mastery have reached legendary proportions worldwide (but he probably started some of those legends himself). Randal's desire to give back to the Perl community inspired him to help create and provide initial funding for The Perl Institute. He is also a founding board member of the Perl Mongers (perl.org), the worldwide Perl grassroots advocacy organization. Since 1985, Randal has owned and operated Stonehenge Consulting Services, Inc.

brian d foy

brian d foy has been an instructor for Stonehenge Consulting Services since 1998, a Perl user since he was a physics graduate student, and a die-hard Mac user since he first owned a computer. He founded the first Perl user group, the New York Perl Mongers, as well as the Perl advocacy nonprofit Perl Mongers, Inc., which helped form more than 200 Perl user groups across the globe. He maintains the perlfaq portions of the core Perl documentation, several modules on CPAN, and some stand-alone scripts. He's the publisher of The Perl Review, a magazine devoted to Perl, and is a frequent speaker at conferences including the Perl Conference, Perl University, MarcusEvans BioInformatics '02, and YAPC. His writings on Perl appear in The O'Reilly Network, The Perl Journal, Dr. Dobbs, and The Perl Review, on use.perl.org, and in several Perl usenet groups.