use F<> format codes for files rather than C<>
Graham Knop [Fri, 8 Mar 2019 02:09:06 +0000 (03:09 +0100)]
lib/Catalyst/Manual/Cookbook.pod
lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod
lib/Catalyst/Manual/Tutorial/03_MoreCatalystBasics.pod
lib/Catalyst/Manual/Tutorial/04_BasicCRUD.pod
lib/Catalyst/Manual/Tutorial/05_Authentication.pod
lib/Catalyst/Manual/Tutorial/08_Testing.pod
lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod
lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormHandler.pod
lib/Catalyst/Manual/Tutorial/10_Appendices.pod

index a550208..16f3739 100644 (file)
@@ -180,7 +180,7 @@ L<Config::General|Config::General> is a method for creating flexible
 and readable configuration files. It's a great way to keep your
 Catalyst application configuration in one easy-to-understand location.
 
-Now create C<myapp.conf> in your application home:
+Now create F<myapp.conf> in your application home:
 
   name     MyApp
 
@@ -1050,7 +1050,7 @@ Note the use of quotes around the filename; this ensures that any
 spaces in the filename are handled by the browser.
 
 Put this right before calling C<< $c->res->body >> and your browser
-will download a file named C<Important Orders.csv> instead of
+will download a file named F<Important Orders.csv> instead of
 C<export>.
 
 You can also use this to have the browser download content which it
@@ -1505,8 +1505,8 @@ production environment.
 Static::Simple is a plugin that will help to serve static content for your
 application. By default, it will serve most types of files, excluding some
 standard Template Toolkit extensions, out of your B<root> file directory. All
-files are served by path, so if B<images/me.jpg> is requested, then
-B<root/images/me.jpg> is found and served.
+files are served by path, so if F<images/me.jpg> is requested, then
+F<root/images/me.jpg> is found and served.
 
 =head3 Usage
 
@@ -1519,12 +1519,12 @@ and already files will be served.
 =head3 Configuring
 
 Static content is best served from a single directory within your root
-directory. Having many different directories such as C<root/css> and
-C<root/images> requires more code to manage, because you must separately
-identify each static directory--if you decide to add a C<root/js>
+directory. Having many different directories such as F<root/css> and
+F<root/images> requires more code to manage, because you must separately
+identify each static directory--if you decide to add a F<root/js>
 directory, you'll need to change your code to account for it. In
 contrast, keeping all static directories as subdirectories of a main
-C<root/static> directory makes things much easier to manage. Here's an
+F<root/static> directory makes things much easier to manage. Here's an
 example of a typical root directory structure:
 
     root/
@@ -1537,7 +1537,7 @@ example of a typical root directory structure:
     root/static/js/code.js
 
 
-All static content lives under C<root/static>, with everything else being
+All static content lives under F<root/static>, with everything else being
 Template Toolkit files.
 
 =over 4
@@ -1629,7 +1629,7 @@ C<< $c->res->body >>.
 
 Next, create a controller to handle requests for the /static path. Use
 the Helper to save time. This command will create a stub controller as
-C<lib/MyApp/Controller/Static.pm>.
+F<lib/MyApp/Controller/Static.pm>.
 
     $ script/myapp_create.pl controller Static
 
@@ -1681,7 +1681,7 @@ code in your Static controller:
 
 When using Apache, you can bypass Catalyst and any Static
 plugins/controllers controller by intercepting requests for the
-C<root/static> path at the server level. All that is required is to
+F<root/static> path at the server level. All that is required is to
 define a DocumentRoot and add a separate Location block for your static
 content. Here is a complete config for this application under mod_perl
 1.x:
@@ -1850,12 +1850,12 @@ alterations.
 Catalyst provides a convenient way of testing your application during
 development and before deployment in a real environment.
 
-C<Catalyst::Test> makes it possible to run the same tests both locally
+L<Catalyst::Test> makes it possible to run the same tests both locally
 (without an external daemon) and against a remote server via HTTP.
 
 =head3 Tests
 
-Let's examine a skeleton application's C<t/> directory:
+Let's examine a skeleton application's F<t/> directory:
 
     mundus:~/MyApp chansen$ ls -l t/
     total 24
@@ -1865,17 +1865,17 @@ Let's examine a skeleton application's C<t/> directory:
 
 =over 4
 
-=item C<01app.t>
+=item F<01app.t>
 
 Verifies that the application loads, compiles, and returns a successful
 response.
 
-=item C<02pod.t>
+=item F<02pod.t>
 
 Verifies that all POD is free from errors. Only executed if the C<TEST_POD>
 environment variable is true.
 
-=item C<03podcoverage.t>
+=item F<03podcoverage.t>
 
 Verifies that all methods/functions have POD coverage. Only executed if the
 C<TEST_POD> environment variable is true.
index 99b531b..3f58d07 100644 (file)
@@ -117,13 +117,13 @@ L<Catalyst::Manual::Tutorial::01_Intro>.
 
 Catalyst provides a number of helper scripts that can be used to quickly
 flesh out the basic structure of your application. All Catalyst projects
-begin with the C<catalyst.pl> helper (see
+begin with the F<catalyst.pl> helper (see
 L<Catalyst::Helper> for more information on helpers).
 Also note that as of Catalyst 5.7000, you will not have the helper
 scripts unless you install both L<Catalyst::Runtime>
 and L<Catalyst::Devel>.
 
-In this first chapter of the tutorial, use the Catalyst C<catalyst.pl>
+In this first chapter of the tutorial, use the Catalyst F<catalyst.pl>
 script to initialize the framework for an application called C<Hello>:
 
     $ catalyst.pl Hello
@@ -140,7 +140,7 @@ Note: If you are using Strawberry Perl on Win32, drop the ".pl"
 from the end of the "catalyst.pl" command and simply use
 "catalyst Hello".
 
-The C<catalyst.pl> helper script will display the names of the
+The F<catalyst.pl> helper script will display the names of the
 directories and files it creates:
 
     Changes               # Record of application changes
@@ -170,7 +170,7 @@ directories and files it creates:
 
 
 Catalyst will "auto-discover" modules in the Controller, Model, and View
-directories. When you use the C<hello_create.pl> script it will create Perl
+directories. When you use the F<hello_create.pl> script it will create Perl
 module scaffolds in those directories, plus test files in the "t"
 directory. The default location for templates is in the "root"
 directory. The scripts in the script directory will always start with
@@ -264,7 +264,7 @@ necessary.
 =head2 The Simplest Way
 
 The Root.pm controller is a place to put global actions that usually
-execute on the root URL. Open the C<lib/Hello/Controller/Root.pm> file
+execute on the root URL. Open the F<lib/Hello/Controller/Root.pm> file
 in your editor. You will see the "index" subroutine, which is
 responsible for displaying the welcome screen that you just saw in your
 browser.
@@ -314,7 +314,7 @@ method.
 While you leave the C<script/hello_server.pl -r> command running the
 development server in one window (don't forget the "-r" at the end!),
 open another window and add the following subroutine to your
-C<lib/Hello/Controller/Root.pm> file:
+F<lib/Hello/Controller/Root.pm> file:
 
     sub hello :Global {
         my ( $self, $c ) = @_;
@@ -365,7 +365,7 @@ To create a TT view, run:
 
     $ script/hello_create.pl view HTML TT
 
-This creates the C<lib/Hello/View/HTML.pm> module, which is a subclass
+This creates the F<lib/Hello/View/HTML.pm> module, which is a subclass
 of C<Catalyst::View::TT>.
 
 =over 4
@@ -389,7 +389,7 @@ indicating that you want to use a Template Toolkit view.
 
 =back
 
-If you look at C<lib/Hello/View/HTML.pm> you will find that it only
+If you look at F<lib/Hello/View/HTML.pm> you will find that it only
 contains a config statement to set the TT extension to ".tt".
 
 Now that the HTML.pm "View" exists, Catalyst will autodiscover it and be
@@ -402,7 +402,7 @@ this is not a TT tutorial, we'll stick to only basic TT usage here (and
 explore some of the more common TT features in later chapters of the
 tutorial).
 
-Create a C<root/hello.tt> template file (put it in the C<root> under the
+Create a F<root/hello.tt> template file (put it in the C<root> under the
 C<Hello> directory that is the base of your application). Here is a
 simple sample:
 
@@ -413,9 +413,9 @@ simple sample:
 [% and %] are markers for the TT parts of the template. Inside you can
 access Perl variables and classes, and use TT directives. In this case,
 we're using a special TT variable that defines the name of the template
-file (C<hello.tt>).  The rest of the template is normal HTML.
+file (F<hello.tt>).  The rest of the template is normal HTML.
 
-Change the hello method in C<lib/Hello/Controller/Root.pm> to the
+Change the hello method in F<lib/Hello/Controller/Root.pm> to the
 following:
 
     sub hello :Global {
@@ -473,11 +473,11 @@ Create a controller named "Site" by executing the create script:
 
     $ script/hello_create.pl controller Site
 
-This will create a C<lib/Hello/Controller/Site.pm> file (and a test
+This will create a F<lib/Hello/Controller/Site.pm> file (and a test
 file). If you bring Site.pm up in your editor, you can see that
 there's not much there to see.
 
-In C<lib/Hello/Controller/Site.pm>, add the following method:
+In F<lib/Hello/Controller/Site.pm>, add the following method:
 
     sub test :Local {
         my ( $self, $c ) = @_;
@@ -508,7 +508,7 @@ Make a subdirectory "site" in the "root" directory.
 
     $ mkdir root/site
 
-Create a new template file in that directory named C<root/site/test.tt>
+Create a new template file in that directory named F<root/site/test.tt>
 and include a line like:
 
     <p>Hello, [% username %]!</p>
index be9b2ec..4ac024c 100644 (file)
@@ -82,7 +82,7 @@ the most trouble-free way to get started with Catalyst.
 =head1 CREATE A NEW APPLICATION
 
 The remainder of the tutorial will build an application called C<MyApp>.
-First use the Catalyst C<catalyst.pl> script to initialize the framework
+First use the Catalyst F<catalyst.pl> script to initialize the framework
 for the C<MyApp> application (make sure you aren't still inside the
 directory of the C<Hello> application from the previous chapter of the
 tutorial or in a directory that already has a "MyApp" subdirectory):
@@ -116,7 +116,7 @@ general, they do this by adding additional methods to the C<context>
 object (generally written as C<$c>) that Catalyst passes to every
 component throughout the framework.
 
-Take a look at the file C<lib/MyApp.pm> that the helper created above.
+Take a look at the file F<lib/MyApp.pm> that the helper created above.
 By default, Catalyst enables three plugins/flags:
 
 =over 4
@@ -126,7 +126,7 @@ By default, Catalyst enables three plugins/flags:
 C<-Debug> Flag
 
 Enables the Catalyst debug output you saw when we started the
-C<script/myapp_server.pl> development server earlier.  You can remove
+F<script/myapp_server.pl> development server earlier.  You can remove
 this item when you place your application into production.
 
 To be technically correct, it turns out that C<-Debug> is not a plugin,
@@ -147,7 +147,7 @@ the C<< $c->debug >> method on the C<$c> Catalyst context object
 
 =item *
 
-the C<-d> option on the C<script/myapp_server.pl> script
+the C<-d> option on the F<script/myapp_server.pl> script
 
 =item *
 
@@ -158,7 +158,7 @@ to temporarily disable debug output)
 
 B<TIP>: Depending on your needs, it can be helpful to permanently remove
 C<-Debug> from C<lib/MyApp.pm> and then use the C<-d> option to
-C<script/myapp_server.pl> to re-enable it when needed.  We will not be
+F<script/myapp_server.pl> to re-enable it when needed.  We will not be
 using that approach in the tutorial, but feel free to make use of it in
 your own projects.
 
@@ -180,13 +180,13 @@ L<Catalyst::Devel> prior to version 1.06, be aware that
 Catalyst changed the default format from YAML to the more
 straightforward C<Config::General> style.  This tutorial uses the newer
 C<myapp.conf> file for C<Config::General>. However, Catalyst supports
-both formats and will automatically use either C<myapp.conf> or
-C<myapp.yml> (or any other format supported by
+both formats and will automatically use either F<myapp.conf> or
+F<myapp.yml> (or any other format supported by
 L<Catalyst::Plugin::ConfigLoader> and
 L<Config::Any>).  If you are using a version of
 Catalyst::Devel prior to 1.06, you can convert to the newer format by
-simply creating the C<myapp.conf> file manually and deleting
-C<myapp.yml>.  The default contents of the C<myapp.conf> you create
+simply creating the F<myapp.conf> file manually and deleting
+F<myapp.yml>.  The default contents of the F<myapp.conf> you create
 should only consist of one line:
 
     name MyApp
@@ -207,7 +207,7 @@ images and CSS files, from the development server.
 =back
 
 For our application, we want to add one new plugin to the mix.  To do
-this, edit C<lib/MyApp.pm> (this file is generally referred to as your
+this, edit F<lib/MyApp.pm> (this file is generally referred to as your
 I<application class>) and delete the lines with:
 
     use Catalyst qw/
@@ -258,7 +258,7 @@ B<Notes:>
 =item *
 
 C<__PACKAGE__> is just a shorthand way of referencing the name of the
-package where it is used.  Therefore, in C<MyApp.pm>, C<__PACKAGE__> is
+package where it is used.  Therefore, in F<MyApp.pm>, C<__PACKAGE__> is
 equivalent to C<MyApp>.
 
 =item *
@@ -276,7 +276,7 @@ lines as shown here or place them all on one line.
 =item *
 
 If you want to see what the StackTrace error screen looks like, edit
-C<lib/MyApp/Controller/Root.pm> and put a C<die "Oops";> command in the
+F<lib/MyApp/Controller/Root.pm> and put a C<die "Oops";> command in the
 C<sub index :Path :Args(0)> method.  Then start the development server
 and open C<http://localhost:3000/> in your browser.  You should get a
 screen that starts with "Caught exception in
@@ -304,9 +304,9 @@ actions:
     created "/home/catalyst/MyApp/script/../lib/MyApp/Controller/Books.pm"
     created "/home/catalyst/MyApp/script/../t/controller_Books.t"
 
-Then edit C<lib/MyApp/Controller/Books.pm> (as discussed in
+Then edit F<lib/MyApp/Controller/Books.pm> (as discussed in
 L<Chapter 2|Catalyst::Manual::Tutorial::02_CatalystBasics> of
-the Tutorial, Catalyst has a separate directory under C<lib/MyApp> for
+the Tutorial, Catalyst has a separate directory under F<lib/MyApp> for
 each of the three parts of MVC: C<Model>, C<View> and C<Controller>)
 and add the following method to the controller:
 
@@ -396,7 +396,7 @@ controller down through the most specific class>.
 
 B<:Path> -- C<:Path> actions let you map a method to an explicit URI
 path.  For example, "C<:Path('list')>" in
-C<lib/MyApp/Controller/Books.pm> would match on the URL
+F<lib/MyApp/Controller/Books.pm> would match on the URL
 C<http://localhost:3000/books/list>, but "C<:Path('/list')>" would match
 on C<http://localhost:3000/list> (because of the leading slash).  You
 can use C<:Args()> to specify how many arguments an action should
@@ -439,7 +439,7 @@ not discussed here (C<Regex> and C<LocalRegex>).
 As mentioned in L<Chapter 2|Catalyst::Manual::Tutorial::02_CatalystBasics>
 of the tutorial, views are where you render output, typically for
 display in the user's web browser (but can generate other types of
-output such as PDF or JSON).  The code in C<lib/MyApp/View> selects the
+output such as PDF or JSON).  The code in F<lib/MyApp/View> selects the
 I<type> of view to use, with the actual rendering template found in the
 C<root> directory.  As with virtually every aspect of Catalyst, options
 abound when it comes to the specific view technology you adopt inside
@@ -477,7 +477,7 @@ typical "wrapper page" type of configuration (where the "wrapper"
 controls the overall "look and feel" of your site from a single file or
 set of files).
 
-Edit C<lib/MyApp/View/HTML.pm> and you should see something similar to
+Edit F<lib/MyApp/View/HTML.pm> and you should see something similar to
 the following:
 
     __PACKAGE__->config(
@@ -497,7 +497,7 @@ This changes the default extension for Template Toolkit from '.tt' to
 '.tt2'.
 
 You can also configure components in your application class. For
-example, Edit C<lib/MyApp.pm> and you should see the default
+example, Edit F<lib/MyApp.pm> and you should see the default
 configuration above the call to C<< _PACKAGE__->setup >> (your defaults
 could be different depending on the version of Catalyst you are using):
 
@@ -527,17 +527,17 @@ C<< __PACKAGE__->config >> below the existing statement):
     );
 
 This changes the base directory for your template files from C<root> to
-C<root/src>.
+F<root/src>.
 
 Please stick with the settings above for the duration of the tutorial,
 but feel free to use whatever options you desire in your applications
 (as with most things in Perl, there's more than one way to do it...).
 
-B<Note:> We will use C<root/src> as the base directory for our template
+B<Note:> We will use F<root/src> as the base directory for our template
 files, with a full naming convention of
-C<root/src/_controller_name_/_action_name_.tt2>.  Another popular option
-is to use C<root/> as the base (with a full filename pattern of
-C<root/_controller_name_/_action_name_.tt2>).
+F<root/src/_controller_name_/_action_name_.tt2>.  Another popular option
+is to use F<root/> as the base (with a full filename pattern of
+F<root/_controller_name_/_action_name_.tt2>).
 
 
 =head2 Create a TT Template Page
@@ -546,7 +546,7 @@ First create a directory for book-related TT templates:
 
     $ mkdir -p root/src/books
 
-Then create C<root/src/books/list.tt2> in your editor and enter:
+Then create F<root/src/books/list.tt2> in your editor and enter:
 
     [% # This is a TT comment. -%]
 
@@ -623,7 +623,7 @@ tutorial.
 In this step, we make a text file with the required SQL commands to
 create a database table and load some sample data.  We will use SQLite
 (L<http://www.sqlite.org>), a popular database that is lightweight and
-easy to use. Be sure to get at least version 3. Open C<myapp01.sql> in
+easy to use. Be sure to get at least version 3. Open F<myapp01.sql> in
 your editor and enter:
 
     --
@@ -671,7 +671,7 @@ your editor and enter:
     INSERT INTO book_author VALUES (4, 7);
     INSERT INTO book_author VALUES (5, 8);
 
-Then use the following command to build a C<myapp.db> SQLite database:
+Then use the following command to build a F<myapp.db> SQLite database:
 
     $ sqlite3 myapp.db < myapp01.sql
 
@@ -679,7 +679,7 @@ If you need to create the database more than once, you probably want to
 issue the C<rm myapp.db> command to delete the database before you use
 the C<< sqlite3 myapp.db < myapp01.sql >> command.
 
-Once the C<myapp.db> database file has been created and initialized, you
+Once the F<myapp.db> database file has been created and initialized, you
 can use the SQLite command line environment to do a quick dump of the
 database contents:
 
@@ -756,7 +756,7 @@ currently installed version numbers with the following commands.
     $ perl -MCatalyst::Model::DBIC::Schema\ 999
     $ perl -MDBD::SQLite\ 999
 
-Before you continue, make sure your C<myapp.db> database file is in the
+Before you continue, make sure your F<myapp.db> database file is in the
 application's topmost directory. Now use the model helper with the
 C<create=static> option to read the database with
 L<DBIx::Class::Schema::Loader> and
@@ -776,14 +776,14 @@ Please note the '\' above.  Depending on your environment, you might be
 able to cut and paste the text as shown or need to remove the '\'
 character to that the command is all on a single line.
 
-The C<script/myapp_create.pl> command breaks down like this:
+The F<script/myapp_create.pl> command breaks down like this:
 
 =over 4
 
 =item *
 
 C<DB> is the name of the model class to be created by the helper in
-the C<lib/MyApp/Model> directory.
+the F<lib/MyApp/Model> directory.
 
 =item *
 
@@ -794,13 +794,13 @@ model inside of Catalyst.
 =item *
 
 C<MyApp::Schema> is the name of the DBIC schema file written to
-C<lib/MyApp/Schema.pm>.
+F<lib/MyApp/Schema.pm>.
 
 =item *
 
 C<create=static> causes L<DBIx::Class::Schema::Loader> to load the
 schema as it runs and then write that information out into
-C<lib/MyApp/Schema.pm> and files under the C<lib/MyApp/Schema>
+F<lib/MyApp/Schema.pm> and files under the F<lib/MyApp/Schema>
 directory.
 
 =item *
@@ -814,19 +814,19 @@ And finally, the C<on_connect_do> string requests that
 L<DBIx::Class::Schema::Loader> create
 foreign key relationships for us (this is not needed for databases such
 as PostgreSQL and MySQL, but is required for SQLite). If you take a look
-at C<lib/MyApp/Model/DB.pm>, you will see that the SQLite pragma is
+at F<lib/MyApp/Model/DB.pm>, you will see that the SQLite pragma is
 propagated to the Model, so that SQLite's recent (and optional) foreign
 key enforcement is enabled at the start of every database connection.
 
 =back
 
 
-If you look in the C<lib/MyApp/Schema.pm> file, you will find that it
+If you look in the F<lib/MyApp/Schema.pm> file, you will find that it
 only contains a call to the C<load_namespaces> method.  You will also
-find that C<lib/MyApp> contains a C<Schema> subdirectory, which then has
+find that F<lib/MyApp> contains a C<Schema> subdirectory, which then has
 a subdirectory called "Result".  This "Result" subdirectory then has
 files named according to each of the tables in our simple database
-(C<Author.pm>, C<BookAuthor.pm>, and C<Book.pm>).  These three files are
+(F<Author.pm>, F<BookAuthor.pm>, and F<Book.pm>).  These three files are
 called "Result Classes" (or
 "L<ResultSource Classes|DBIx::Class::ResultSource>") in DBIx::Class
 nomenclature. Although the Result Class files are named after tables in
@@ -835,7 +835,7 @@ returned by DBIC (more on this later, especially in
 L<Catalyst::Manual::Tutorial::04_BasicCRUD/EXPLORING THE POWER OF DBIC>).
 
 The idea with the Result Source files created under
-C<lib/MyApp/Schema/Result> by the C<create=static> option is to only
+F<lib/MyApp/Schema/Result> by the C<create=static> option is to only
 edit the files below the C<# DO NOT MODIFY THIS OR ANYTHING ABOVE!>
 warning. If you place all of your changes below that point in the file,
 you can regenerate the automatically created information at the top of
@@ -843,18 +843,18 @@ each file should your database structure get updated.
 
 Also note the "flow" of the model information across the various files
 and directories.  Catalyst will initially load the model from
-C<lib/MyApp/Model/DB.pm>.  This file contains a reference to
-C<lib/MyApp/Schema.pm>, so that file is loaded next.  Finally, the call
+F<lib/MyApp/Model/DB.pm>.  This file contains a reference to
+F<lib/MyApp/Schema.pm>, so that file is loaded next.  Finally, the call
 to C<load_namespaces> in C<Schema.pm> will load each of the "Result
-Class" files from the C<lib/MyApp/Schema/Result> subdirectory.  The
+Class" files from the F<lib/MyApp/Schema/Result> subdirectory.  The
 final outcome is that Catalyst will dynamically create three
 table-specific Catalyst models every time the application starts (you
 can see these three model files listed in the debug output generated
 when you launch the application).
 
-Additionally, the C<lib/MyApp/Schema.pm> model can easily be loaded
+Additionally, the F<lib/MyApp/Schema.pm> model can easily be loaded
 outside of Catalyst, for example, in command-line utilities and/or cron
-jobs. C<lib/MyApp/Model/DB.pm> provides a very thin "bridge" between
+jobs. F<lib/MyApp/Model/DB.pm> provides a very thin "bridge" between
 Catalyst and this external database model.  Once you see how we can
 add some powerful features to our DBIC model in
 L<Chapter 4|Catalyst::Manual::Tutorial::04_BasicCRUD>, the elegance
@@ -880,7 +880,7 @@ L<DBIx::Class::Schema::Loader> version C<0.05000> or later.
 
 =head1 ENABLE THE MODEL IN THE CONTROLLER
 
-Open C<lib/MyApp/Controller/Books.pm> and un-comment the model code we
+Open F<lib/MyApp/Controller/Books.pm> and un-comment the model code we
 left disabled earlier so that your version matches the following
 (un-comment the line containing C<< [$c->model('DB::Book')->all] >>
 and delete the next 2 lines):
@@ -1001,9 +1001,9 @@ display something like:
     [info] MyApp powered by Catalyst 5.80020
     HTTP::Server::PSGI: Accepting connections at http://0:3000
 
-B<NOTE:> Be sure you run the C<script/myapp_server.pl> command from the
-'base' directory of your application, not inside the C<script> directory
-itself or it will not be able to locate the C<myapp.db> database file.
+B<NOTE:> Be sure you run the F<script/myapp_server.pl> command from the
+'base' directory of your application, not inside the F<script> directory
+itself or it will not be able to locate the F<myapp.db> database file.
 You can use a fully qualified or a relative path to locate the database
 file, but we did not specify that when we ran the model helper earlier.
 
@@ -1030,11 +1030,11 @@ the Catalyst welcome page.
 
 Next, to view the book list, change the URL in your browser to
 L<http://localhost:3000/books/list>. You should get a list of the five
-books loaded by the C<myapp01.sql> script above without any formatting.
+books loaded by the F<myapp01.sql> script above without any formatting.
 The rating for each book should appear on each row, but the "Author(s)"
 column will still be blank (we will fill that in later).
 
-Also notice in the output of the C<script/myapp_server.pl> that
+Also notice in the output of the F<script/myapp_server.pl> that
 L<DBIx::Class> used the following SQL to retrieve the data:
 
     SELECT me.id, me.title, me.rating FROM book me
@@ -1060,7 +1060,7 @@ files.
 In order to create a wrapper, you must first edit your TT view and tell
 it where to find your wrapper file.
 
-Edit your TT view in C<lib/MyApp/View/HTML.pm> and change it to match
+Edit your TT view in F<lib/MyApp/View/HTML.pm> and change it to match
 the following:
 
     __PACKAGE__->config(
@@ -1081,7 +1081,7 @@ the following:
 
 Next you need to set up your wrapper template.  Basically, you'll want
 to take the overall layout of your site and put it into this file.  For
-the tutorial, open C<root/src/wrapper.tt2> and input the following:
+the tutorial, open F<root/src/wrapper.tt2> and input the following:
 
     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" [%#
@@ -1135,7 +1135,7 @@ If we set either message in the Catalyst stash (e.g.,
 C<< $c->stash->{status_msg} = 'Request was successful!' >>) it will
 be displayed whenever any view used by that request is rendered.  The
 C<message> and C<error> CSS styles can be customized to suit your needs
-in the C<root/static/css/main.css> file we create below.
+in the F<root/static/css/main.css> file we create below.
 
 B<Notes:>
 
@@ -1164,7 +1164,7 @@ directory:
 
     $ mkdir root/static/css
 
-Then open the file C<root/static/css/main.css> (the file referenced in
+Then open the file F<root/static/css/main.css> (the file referenced in
 the stylesheet href link of our wrapper above) and add the following
 content:
 
@@ -1215,7 +1215,7 @@ of high-quality CSS functionality.
 Hit "Reload" in your web browser and you should now see a formatted
 version of our basic book list. (Again, the development server should
 have automatically restarted when you made changes to
-C<lib/MyApp/View/HTML.pm>. If you are not using the "-r" option, you
+F<lib/MyApp/View/HTML.pm>. If you are not using the "-r" option, you
 will need to hit C<Ctrl-C> and manually restart it. Also note that the
 development server does I<NOT> need to restart for changes to the TT and
 static files we created and edited in the C<root> directory -- those
@@ -1233,7 +1233,7 @@ template -- the wrapper will provide the overall feel of the page.
 If you take a look at the Schema files automatically generated by
 L<DBIx::Class::Schema::Loader>, you will see that it has already defined
 C<has_many> and C<belongs_to> relationships on each side of our foreign
-keys. For example, take a look at C<lib/MyApp/Schema/Result/Book.pm> and
+keys. For example, take a look at F<lib/MyApp/Schema/Result/Book.pm> and
 notice the following code:
 
     =head1 RELATIONS
@@ -1301,7 +1301,7 @@ tools, you will need to manually define your C<has_many> and
 C<belongs_to> relationships. We recommend upgrading to the versions
 specified above. :-)
 
-Have a look at C<lib/MyApp/Schema/Result/BookAuthor.pm> and notice that
+Have a look at F<lib/MyApp/Schema/Result/BookAuthor.pm> and notice that
 there is a C<belongs_to> relationship defined that acts as the "mirror
 image" to the C<has_many> relationship we just looked at above:
 
@@ -1329,7 +1329,7 @@ Although recent versions of SQLite and L<DBIx::Class::Schema::Loader>
 automatically handle the C<has_many> and C<belongs_to> relationships,
 C<many_to_many> relationship bridges (not technically a relationship)
 currently need to be manually inserted.  To add a C<many_to_many>
-relationship bridge, first edit C<lib/MyApp/Schema/Result/Book.pm> and
+relationship bridge, first edit F<lib/MyApp/Schema/Result/Book.pm> and
 add the following text below the C<# You can replace this text...>
 comment:
 
@@ -1358,7 +1358,7 @@ C<< $book->author->first->last_name >>. Note that you cannot
 define a C<many_to_many> relationship bridge without also having the
 C<has_many> relationship in place.
 
-Then edit C<lib/MyApp/Schema/Result/Author.pm> and add the reverse
+Then edit F<lib/MyApp/Schema/Result/Author.pm> and add the reverse
 C<many_to_many> relationship bridge for C<Author> as follows (again, be
 careful to put in above the C<1;> but below the C<# DO NOT MODIFY THIS
 OR ANYTHING ABOVE!> comment):
@@ -1396,7 +1396,7 @@ update the template to do that.
 
 Let's add a new column to our book list page that takes advantage of the
 relationship information we manually added to our schema files in the
-previous section.  Edit C<root/src/books/list.tt2> and replace the
+previous section.  Edit F<root/src/books/list.tt2> and replace the
 "empty" table cell "<td></td>" with the following:
 
     ...
@@ -1453,7 +1453,7 @@ DBIx::Class):
     SELECT author.id, author.first_name, author.last_name FROM book_author me
     JOIN author author ON author.id = me.author_id WHERE ( me.book_id = ? ): '5'
 
-Also note in C<root/src/books/list.tt2> that we are using "| html", a
+Also note in F<root/src/books/list.tt2> that we are using "| html", a
 type of TT filter, to escape characters such as < and > to &lt;
 and &gt; and avoid various types of dangerous hacks against your
 application.  In a real application, you would probably want to put "|
@@ -1474,7 +1474,7 @@ dramatically increase the security of your app.)
 
 In some situations, it can be useful to run your application and display
 a page without using a browser.  Catalyst lets you do this using the
-C<script/myapp_test.pl> script.  Just supply the URL you wish to
+F<script/myapp_test.pl> script.  Just supply the URL you wish to
 display and it will run that request through the normal controller
 dispatch logic and use the appropriate view to render the output
 (obviously, complex pages may dump a lot of text to your terminal
@@ -1510,7 +1510,7 @@ forwards processing to your view in order to generate the appropriate
 response output.  Catalyst uses
 L<Catalyst::Action::RenderView> by default
 to automatically perform this operation.  If you look in
-C<lib/MyApp/Controller/Root.pm>, you should see the empty definition for
+F<lib/MyApp/Controller/Root.pm>, you should see the empty definition for
 the C<sub end> method:
 
     sub end : ActionClass('RenderView') {}
@@ -1522,7 +1522,7 @@ C<RenderView> process:
 
 =item *
 
-C<Root.pm> is designed to hold application-wide logic.
+F<Root.pm> is designed to hold application-wide logic.
 
 =item *
 
@@ -1530,7 +1530,7 @@ At the end of a given user request, Catalyst will call the most specific
 C<end> method that's appropriate.  For example, if the controller for a
 request has an C<end> method defined, it will be called.  However, if
 the controller does not define a controller-specific C<end> method, the
-"global" C<end> method in C<Root.pm> will be called.
+"global" C<end> method in F<Root.pm> will be called.
 
 =item *
 
@@ -1545,7 +1545,7 @@ Because C<sub end> is empty, this effectively just runs the default
 logic in C<RenderView>.  However, you can easily extend the
 C<RenderView> logic by adding your own code inside the empty method body
 (C<{}>) created by the Catalyst Helpers when we first ran the
-C<catalyst.pl> to initialize our application.  See
+F<catalyst.pl> to initialize our application.  See
 L<Catalyst::Action::RenderView> for more
 detailed information on how to extend C<RenderView> in C<sub end>.
 
@@ -1632,11 +1632,11 @@ before continuing to the next chapter 4 Basic CRUD.
 
 In order to be able to use C<< $c->forward >> and C<< $c->detach >>
 later in the tutorial, you should remove the comment from the statement
-in C<sub list> in C<lib/MyApp/Controller/Books.pm>:
+in C<sub list> in F<lib/MyApp/Controller/Books.pm>:
 
     $c->stash(template => 'books/list.tt2');
 
-Then delete the C<TEMPLATE_EXTENSION> line in C<lib/MyApp/View/HTML.pm>.
+Then delete the C<TEMPLATE_EXTENSION> line in F<lib/MyApp/View/HTML.pm>.
 
 Check the L<http://localhost:3000/books/list> URL in your browser.  It
 should look the same manner as with earlier sections.
index 3addacb..36a3525 100644 (file)
@@ -90,7 +90,7 @@ submission in the sections that follow).
 
 =head2 Include a Create Action in the Books Controller
 
-Edit C<lib/MyApp/Controller/Books.pm> and enter the following method:
+Edit F<lib/MyApp/Controller/Books.pm> and enter the following method:
 
     =head2 url_create
 
@@ -138,7 +138,7 @@ user input), it then sets the template that should handle this request.
 Also note that we are explicitly setting a C<no-cache> "Cache-Control"
 header to force browsers using the page to get a fresh copy every time.
 You could even move this to a C<auto> method in
-C<lib/MyApp/Controller/Root.pm> and it would automatically get applied
+F<lib/MyApp/Controller/Root.pm> and it would automatically get applied
 to every page in the whole application via a single line of code
 (remember from Chapter 3, that every C<auto> method gets run in the
 Controller hierarchy).
@@ -146,7 +146,7 @@ Controller hierarchy).
 
 =head2 Include a Template for the 'url_create' Action:
 
-Edit C<root/src/books/create_done.tt2> and then enter:
+Edit F<root/src/books/create_done.tt2> and then enter:
 
     [% # Use the TT Dumper plugin to Data::Dumper variables to the browser   -%]
     [% # Not a good idea for production use, though. :-)  'Indent=1' is      -%]
@@ -231,7 +231,7 @@ Although the example above uses the same C<Local> action type for the
 method that we saw in the previous chapter of the tutorial, there is an
 alternate approach that allows us to be more specific while also paving
 the way for more advanced capabilities.  Change the method declaration
-for C<url_create> in C<lib/MyApp/Controller/Books.pm> you entered above
+for C<url_create> in F<lib/MyApp/Controller/Books.pm> you entered above
 to match the following:
 
     sub url_create :Chained('/') :PathPart('books/url_create') :Args(3) {
@@ -396,7 +396,7 @@ are now seven books shown (two copies of I<TCPIP_Illustrated_Vol-2>).
 
 Let's make a quick update to our initial Chained action to show a little
 more of the power of chaining.  First, open
-C<lib/MyApp/Controller/Books.pm> in your editor and add the following
+F<lib/MyApp/Controller/Books.pm> in your editor and add the following
 method:
 
     =head2 base
@@ -427,12 +427,12 @@ working with now), we will instead add that functionality to a common
 C<object> action shortly.
 
 As for C<url_create>, let's modify it to first dispatch to C<base>.
-Open up C<lib/MyApp/Controller/Books.pm> and edit the declaration for
+Open up F<lib/MyApp/Controller/Books.pm> and edit the declaration for
 C<url_create> to match the following:
 
     sub url_create :Chained('base') :PathPart('url_create') :Args(3) {
 
-Once you save C<lib/MyApp/Controller/Books.pm>, notice that the
+Once you save F<lib/MyApp/Controller/Books.pm>, notice that the
 development server will restart and our "Loaded Chained actions" section
 will changed slightly:
 
@@ -465,7 +465,7 @@ list" link, and you should find that there are now eight books shown.
 "create" actions more than once.  Don't worry about it as long as the
 number of books is appropriate for the number of times you added new
 books... there should be the original five books added via
-C<myapp01.sql> plus one additional book for each time you ran one of the
+F<myapp01.sql> plus one additional book for each time you ran one of the
 url_create variations above.)
 
 
@@ -481,7 +481,7 @@ for better options for handling web-based forms).
 
 =head2 Add Method to Display The Form
 
-Edit C<lib/MyApp/Controller/Books.pm> and add the following method:
+Edit F<lib/MyApp/Controller/Books.pm> and add the following method:
 
     =head2 form_create
 
@@ -501,7 +501,7 @@ This action simply invokes a view containing a form to create a book.
 
 =head2 Add a Template for the Form
 
-Open C<root/src/books/form_create.tt2> in your editor and enter:
+Open F<root/src/books/form_create.tt2> in your editor and enter:
 
     [% META title = 'Manual Form Book Create' -%]
 
@@ -520,7 +520,7 @@ C<form_create_do>, the method created in the section that follows.
 
 =head2 Add a Method to Process Form Values and Update Database
 
-Edit C<lib/MyApp/Controller/Books.pm> and add the following method to
+Edit F<lib/MyApp/Controller/Books.pm> and add the following method to
 save the form information to the database:
 
     =head2 form_create_do
@@ -573,7 +573,7 @@ that we added:
 Point your browser to L<http://localhost:3000/books/form_create> and
 enter "TCP/IP Illustrated, Vol 3" for the title, a rating of 5, and an
 author ID of 4.  You should then see the output of the same
-C<create_done.tt2> template seen in earlier examples.  Finally, click
+F<create_done.tt2> template seen in earlier examples.  Finally, click
 "Return to list" to view the full list of books.
 
 B<Note:> Having the user enter the primary key ID for the author is
@@ -591,7 +591,7 @@ from the database.
 
 =head2 Include a Delete Link in the List
 
-Edit C<root/src/books/list.tt2> and update it to match the following
+Edit F<root/src/books/list.tt2> and update it to match the following
 (two sections have changed: 1) the additional '<th>Links</th>' table
 header, and 2) the five lines for the Delete link near the bottom):
 
@@ -689,7 +689,7 @@ existing book can chain off this method, but methods such as
 C<url_create> that don't operate on an existing book can chain directly
 off base.
 
-To add the C<object> method, edit C<lib/MyApp/Controller/Books.pm> and
+To add the C<object> method, edit F<lib/MyApp/Controller/Books.pm> and
 add the following code:
 
     =head2 object
@@ -721,7 +721,7 @@ the appropriate book waiting for it in C<< $c->stash->{object} >>.
 
 =head2 Add a Delete Action to the Controller
 
-Open C<lib/MyApp/Controller/Books.pm> in your editor and add the
+Open F<lib/MyApp/Controller/Books.pm> in your editor and add the
 following method:
 
     =head2 delete
@@ -814,7 +814,7 @@ request.  As a result, the URL in the browser is updated to match the
 destination of the redirection URL.
 
 To convert the forward used in the previous section to a redirect, open
-C<lib/MyApp/Controller/Books.pm> and edit the existing C<sub delete>
+F<lib/MyApp/Controller/Books.pm> and edit the existing C<sub delete>
 method to match:
 
     =head2 delete
@@ -859,7 +859,7 @@ is to use the C<flash> technique that we will see in
 L<Chapter 5|Catalyst::Manual::Tutorial::05_Authentication> of this
 tutorial; however, here we will pass the information via query
 parameters on the redirect itself.  Open
-C<lib/MyApp/Controller/Books.pm> and update the existing C<sub delete>
+F<lib/MyApp/Controller/Books.pm> and update the existing C<sub delete>
 method to match the following:
 
     =head2 delete
@@ -882,7 +882,7 @@ method to match the following:
 
 This modification simply leverages the ability of C<uri_for> to include
 an arbitrary number of name/value pairs in a hash reference.  Next, we
-need to update C<root/src/wrapper.tt2> to handle C<status_msg> as a
+need to update F<root/src/wrapper.tt2> to handle C<status_msg> as a
 query parameter:
 
     ...
@@ -897,7 +897,7 @@ query parameter:
     ...
 
 Although the sample above only shows the C<content> div, leave the rest
-of the file intact -- the only change we made to the C<wrapper.tt2> was
+of the file intact -- the only change we made to the F<wrapper.tt2> was
 to add "C<|| c.request.params.status_msg>" to the
 C<< <span class="message"> >> line.  Note that we definitely want
 the "C<| html>" TT filter here since it would be easy for users to
@@ -979,13 +979,13 @@ Notice that we modified our use of the helper slightly: we told it to
 include the L<DBIx::Class::TimeStamp> in the C<load_components> line of
 the Result Classes.
 
-If you open C<lib/MyApp/Schema/Result/Book.pm> in your editor you should
+If you open F<lib/MyApp/Schema/Result/Book.pm> in your editor you should
 see that the C<created> and C<updated> fields are now included in the
 call to C<add_columns()>. However, also notice that the C<many_to_many>
 relationships we manually added below the "C<# DO NOT MODIFY...>" line
 were automatically preserved.
 
-While we C<lib/MyApp/Schema/Result/Book.pm> open, let's update it with
+While we F<lib/MyApp/Schema/Result/Book.pm> open, let's update it with
 some additional information to have DBIC automatically handle the
 updating of these two fields for us.  Insert the following code at the
 bottom of the file (it B<must> be B<below> the "C<# DO NOT MODIFY...>"
@@ -1009,11 +1009,11 @@ the timestamps in these columns whenever a row is created or modified.
 B<Note> that adding the lines above will cause the development server to
 automatically restart if you are running it with the "-r" option.  In
 other words, the development server is smart enough to restart not only
-for code under the C<MyApp/Controller/>, C<MyApp/Model/>, and
-C<MyApp/View/> directories, but also under other directions such as our
-"external DBIC model" in C<MyApp/Schema/>.  However, also note that it's
+for code under the F<MyApp/Controller/>, F<MyApp/Model/>, and
+F<MyApp/View/> directories, but also under other directions such as our
+"external DBIC model" in F<MyApp/Schema/>.  However, also note that it's
 smart enough to B<not> restart when you edit your C<.tt2> files under
-C<root/>.
+F<root/>.
 
 Then enter the following URL into your web browser:
 
@@ -1057,7 +1057,7 @@ a directory where DBIx::Class will look for our ResultSet Class:
 
     $ mkdir lib/MyApp/Schema/ResultSet
 
-Then open C<lib/MyApp/Schema/ResultSet/Book.pm> and enter the following:
+Then open F<lib/MyApp/Schema/ResultSet/Book.pm> and enter the following:
 
     package MyApp::Schema::ResultSet::Book;
 
@@ -1084,7 +1084,7 @@ Then open C<lib/MyApp/Schema/ResultSet/Book.pm> and enter the following:
 
     1;
 
-Then add the following method to the C<lib/MyApp/Controller/Books.pm>:
+Then add the following method to the F<lib/MyApp/Controller/Books.pm>:
 
     =head2 list_recent
 
@@ -1132,7 +1132,7 @@ because this technique carries over to the ResultSet Class feature we
 implemented in the previous section for our "canned search", we can
 combine the two capabilities.  For example, let's add an action to our
 C<Books> controller that lists books that are both recent I<and> have
-"TCP" in the title.  Open up C<lib/MyApp/Controller/Books.pm> and add
+"TCP" in the title.  Open up F<lib/MyApp/Controller/Books.pm> and add
 the following method:
 
     =head2 list_recent_tcp
@@ -1180,7 +1180,7 @@ the first URL and you should see something similar to the following:
 
 However, let's not pollute our controller code with this raw "TCP" query
 -- it would be cleaner to encapsulate that code in a method on our
-ResultSet Class.  To do this, open C<lib/MyApp/Schema/ResultSet/Book.pm>
+ResultSet Class.  To do this, open F<lib/MyApp/Schema/ResultSet/Book.pm>
 and add the following method:
 
     =head2 title_like
@@ -1199,7 +1199,7 @@ and add the following method:
 
 We defined the search string as C<$title_str> to make the method more
 flexible.  Now update the C<list_recent_tcp> method in
-C<lib/MyApp/Controller/Books.pm> to match the following (we have
+F<lib/MyApp/Controller/Books.pm> to match the following (we have
 replaced the C<< ->search >> line with the C<< ->title_like >> line
 shown here -- the rest of the method should be the same):
 
@@ -1242,8 +1242,8 @@ can do a similar improvement when working with individual rows as well.
 Whereas the ResultSet construct is used in DBIC to correspond to an
 entire query, the Result Class construct is used to represent a row.
 Therefore, we can add row-specific "helper methods" to our Result
-Classes stored in C<lib/MyApp/Schema/Result/>. For example, open
-C<lib/MyApp/Schema/Result/Author.pm> and add the following method (as
+Classes stored in F<lib/MyApp/Schema/Result/>. For example, open
+F<lib/MyApp/Schema/Result/Author.pm> and add the following method (as
 always, it must be above the closing "C<1;>"):
 
     #
@@ -1256,7 +1256,7 @@ always, it must be above the closing "C<1;>"):
     }
 
 This will allow us to conveniently retrieve both the first and last name
-for an author in one shot.  Now open C<root/src/books/list.tt2> and
+for an author in one shot.  Now open F<root/src/books/list.tt2> and
 change the definition of C<tt_authors> from this:
 
     ...
@@ -1292,7 +1292,7 @@ templates!
 The previous section illustrated how we could use a Result Class method
 to print the full names of the authors without adding any extra code to
 our view, but it still left us with a fairly ugly mess (see
-C<root/src/books/list.tt2>):
+F<root/src/books/list.tt2>):
 
     ...
     <td>
@@ -1317,7 +1317,7 @@ C<root/src/books/list.tt2>):
 Let's combine some of the techniques used earlier in this section to
 clean this up.  First, let's add a method to our Book Result Class to
 return the number of authors for a book.  Open
-C<lib/MyApp/Schema/Result/Book.pm> and add the following method:
+F<lib/MyApp/Schema/Result/Book.pm> and add the following method:
 
     =head2 author_count
 
@@ -1334,7 +1334,7 @@ C<lib/MyApp/Schema/Result/Book.pm> and add the following method:
     }
 
 Next, let's add a method to return a list of authors for a book to the
-same C<lib/MyApp/Schema/Result/Book.pm> file:
+same F<lib/MyApp/Schema/Result/Book.pm> file:
 
     =head2 author_list
 
@@ -1356,11 +1356,11 @@ same C<lib/MyApp/Schema/Result/Book.pm> file:
     }
 
 This method loops through each author, using the C<full_name> Result
-Class method we added to C<lib/MyApp/Schema/Result/Author.pm> in the
+Class method we added to F<lib/MyApp/Schema/Result/Author.pm> in the
 prior section.
 
 Using these two methods, we can simplify our TT code.  Open
-C<root/src/books/list.tt2> and update the "Author(s)" table cell to
+F<root/src/books/list.tt2> and update the "Author(s)" table cell to
 match the following:
 
     ...
index 75c1482..80339fe 100644 (file)
@@ -80,7 +80,7 @@ application.
 First, we add both user and role information to the database (we will
 add the role information here although it will not be used until the
 authorization section, Chapter 6).  Create a new SQL script file by
-opening C<myapp02.sql> in your editor and insert:
+opening F<myapp02.sql> in your editor and insert:
 
     --
     -- Add users and role tables, along with a many-to-many join table
@@ -117,7 +117,7 @@ opening C<myapp02.sql> in your editor and insert:
     INSERT INTO user_role VALUES (2, 1);
     INSERT INTO user_role VALUES (3, 1);
 
-Then load this into the C<myapp.db> database with the following command:
+Then load this into the F<myapp.db> database with the following command:
 
     $ sqlite3 myapp.db < myapp02.sql
 
@@ -142,7 +142,7 @@ for us:
     Author.pm  BookAuthor.pm  Book.pm  Role.pm  User.pm  UserRole.pm
 
 Notice how the helper has added three new table-specific Result Source
-files to the C<lib/MyApp/Schema/Result> directory.  And, more
+files to the F<lib/MyApp/Schema/Result> directory.  And, more
 importantly, even if there were changes to the existing result source
 files, those changes would have only been written above the
 C<# DO NOT MODIFY THIS OR ANYTHING ABOVE!> comment and your hand-edited
@@ -157,7 +157,7 @@ and C<belongs_to> relationships for the new User, UserRole, and Role
 tables. However, as a convenience for mapping Users to their assigned
 roles (see L<Chapter 6|Catalyst::Manual::Tutorial::06_Authorization>),
 we will also manually add a C<many_to_many> relationship. Edit
-C<lib/MyApp/Schema/Result/User.pm> add the following information between
+F<lib/MyApp/Schema/Result/User.pm> add the following information between
 the C<# DO NOT MODIFY THIS OR ANYTHING ABOVE!> comment and the closing
 C<1;>:
 
@@ -178,9 +178,9 @@ B<AND> Books to Authors, here we are only adding the convenience
 C<many_to_many> in the Users to Roles direction.
 
 Note that we do not need to make any change to the
-C<lib/MyApp/Schema.pm> schema file.  It simply tells DBIC to load all of
+F<lib/MyApp/Schema.pm> schema file.  It simply tells DBIC to load all of
 the Result Class and ResultSet Class files it finds below the
-C<lib/MyApp/Schema> directory, so it will automatically pick up our new
+F<lib/MyApp/Schema> directory, so it will automatically pick up our new
 table information.
 
 
@@ -217,7 +217,7 @@ Catalyst under C<MyApp::Model>.
 
 =head2 Include Authentication and Session Plugins
 
-Edit C<lib/MyApp.pm> and update it as follows (everything below
+Edit F<lib/MyApp.pm> and update it as follows (everything below
 C<StackTrace> is new):
 
     # Load plugins
@@ -280,7 +280,7 @@ L<Catalyst::Authentication::Realm::SimpleDB> because it automatically
 sets a reasonable set of defaults for us.  (Note: the C<SimpleDB> here
 has nothing to do with the SimpleDB offered in Amazon's web services
 offerings -- here we are only talking about a "simple" way to use your
-DB as an authentication backend.)  Open C<lib/MyApp.pm> and place the
+DB as an authentication backend.)  Open F<lib/MyApp.pm> and place the
 following text above the call to C<< __PACKAGE__->setup(); >>:
 
     # Configure SimpleDB Authentication
@@ -294,15 +294,15 @@ following text above the call to C<< __PACKAGE__->setup(); >>:
         },
     );
 
-We could have placed this configuration in C<myapp.conf>, but placing it
-in C<lib/MyApp.pm> is probably a better place since it's not likely
+We could have placed this configuration in F<myapp.conf>, but placing it
+in F<lib/MyApp.pm> is probably a better place since it's not likely
 something that users of your application will want to change during
 deployment (or you could use a mixture: leave C<class> and C<user_model>
-defined in C<lib/MyApp.pm> as we show above, but place C<password_type>
-in C<myapp.conf> to allow the type of password to be easily modified
+defined in F<lib/MyApp.pm> as we show above, but place C<password_type>
+in F<myapp.conf> to allow the type of password to be easily modified
 during deployment).  We will stick with putting all of the
-authentication-related configuration in C<lib/MyApp.pm> for the
-tutorial, but if you wish to use C<myapp.conf>, just convert to the
+authentication-related configuration in F<lib/MyApp.pm> for the
+tutorial, but if you wish to use F<myapp.conf>, just convert to the
 following code:
 
     <Plugin::Authentication>
@@ -314,7 +314,7 @@ following code:
     </Plugin::Authentication>
 
 B<TIP:> Here is a short script that will dump the contents of
-C<MyApp->config> to L<Config::General> format in C<myapp.conf>:
+C<MyApp->config> to L<Config::General> format in F<myapp.conf>:
 
     $ CATALYST_DEBUG=0 perl -Ilib -e 'use MyApp; use Config::General;
         Config::General->new->save_file("myapp.conf", MyApp->config);'
@@ -345,7 +345,7 @@ have a C<User> controller with both C<login> and C<logout> actions.
 Remember, Catalyst is designed to be very flexible, and leaves such
 matters up to you, the designer and programmer.
 
-Then open C<lib/MyApp/Controller/Login.pm>, and update the definition of
+Then open F<lib/MyApp/Controller/Login.pm>, and update the definition of
 C<sub index> to match:
 
     =head2 index
@@ -408,7 +408,7 @@ specific with the C<:Args(0)> action modifier -- this forces the match
 on I<only> C</login>, not C</login/somethingelse>.
 
 Next, update the corresponding method in
-C<lib/MyApp/Controller/Logout.pm> to match:
+F<lib/MyApp/Controller/Logout.pm> to match:
 
     =head2 index
 
@@ -429,7 +429,7 @@ C<lib/MyApp/Controller/Logout.pm> to match:
 
 =head2 Add a Login Form TT Template Page
 
-Create a login form by opening C<root/src/login.tt2> and inserting:
+Create a login form by opening F<root/src/login.tt2> and inserting:
 
     [% META title = 'Login' %]
 
@@ -457,9 +457,9 @@ We need something that provides enforcement for the authentication
 mechanism -- a I<global> mechanism that prevents users who have not
 passed authentication from reaching any pages except the login page.
 This is generally done via an C<auto> action/method in
-C<lib/MyApp/Controller/Root.pm>.
+F<lib/MyApp/Controller/Root.pm>.
 
-Edit the existing C<lib/MyApp/Controller/Root.pm> class file and insert
+Edit the existing F<lib/MyApp/Controller/Root.pm> class file and insert
 the following method:
 
     =head2 auto
@@ -503,7 +503,7 @@ L<Catalyst::Manual::Tutorial::03_MoreCatalystBasics/CREATE A CATALYST CONTROLLER
 every C<auto> method from the application/root controller down to the
 most specific controller will be called.  By placing the authentication
 enforcement code inside the C<auto> method of
-C<lib/MyApp/Controller/Root.pm> (or C<lib/MyApp.pm>), it will be called
+F<lib/MyApp/Controller/Root.pm> (or F<lib/MyApp.pm>), it will be called
 for I<every> request that is received by the entire application.
 
 
@@ -511,7 +511,7 @@ for I<every> request that is received by the entire application.
 
 Let's say you want to provide some information on the login page that
 changes depending on whether the user has authenticated yet.  To do
-this, open C<root/src/login.tt2> in your editor and add the following
+this, open F<root/src/login.tt2> in your editor and add the following
 lines to the bottom of the file:
 
     ...
@@ -572,7 +572,7 @@ UDP vs. the more common TCP that you see with most Internet protocols.
 Worse case, you might have to manually set the time on your development
 box instead of using NTP.
 
-Open C<root/src/books/list.tt2> and add the following lines to the
+Open F<root/src/books/list.tt2> and add the following lines to the
 bottom (below the closing </table> tag):
 
     ...
@@ -624,7 +624,7 @@ generates for us.  Simply use the same command we saw in Chapters 3 and
 
 If you then open one of the Result Classes, you will see that it
 includes PassphraseColumn in the C<load_components> line.  Take a look
-at C<lib/MyApp/Schema/Result/User.pm> since that's the main class where
+at F<lib/MyApp/Schema/Result/User.pm> since that's the main class where
 we want to use hashed and salted passwords:
 
     __PACKAGE__->load_components("InflateColumn::DateTime", "TimeStamp", "PassphraseColumn");
@@ -632,7 +632,7 @@ we want to use hashed and salted passwords:
 
 =head2 Modify the "password" Column to Use PassphraseColumn
 
-Open the file C<lib/MyApp/Schema/Result/User.pm> and enter the following
+Open the file F<lib/MyApp/Schema/Result/User.pm> and enter the following
 text below the "# DO NOT MODIFY THIS OR ANYTHING ABOVE!" line but above
 the closing "1;":
 
@@ -667,7 +667,7 @@ class supports.
 
 Next, let's create a quick script to load some hashed and salted
 passwords into the C<password> column of our C<users> table.  Open the
-file C<set_hashed_passwords.pl> in your editor and enter the following
+file F<set_hashed_passwords.pl> in your editor and enter the following
 text:
 
     #!/usr/bin/perl
@@ -696,7 +696,7 @@ Then run the following command:
     $ DBIC_TRACE=1 perl -Ilib set_hashed_passwords.pl
 
 We had to use the C<-Ilib> argument to tell Perl to look under the
-C<lib> directory for our C<MyApp::Schema> model.
+F<lib> directory for our C<MyApp::Schema> model.
 
 The DBIC_TRACE output should show that the update worked:
 
@@ -726,7 +726,7 @@ your web application -- a very useful feature in many situations.
 
 =head2 Enable Hashed and Salted Passwords
 
-Edit C<lib/MyApp.pm> and update the config() section for
+Edit F<lib/MyApp.pm> and update the config() section for
 C<Plugin::Authentication> it to match the following text (the only
 change is to the C<password_type> field):
 
@@ -745,11 +745,10 @@ The use of C<self_check> will cause
 Catalyst::Plugin::Authentication::Store::DBIx::Class to call the
 C<check_password> method we enabled on our C<password> columns.
 
-
 =head2 Try Out the Hashed Passwords
 
 The development server should restart as soon as your save the
-C<lib/MyApp.pm> file in the previous section. You should now be able to
+F<lib/MyApp.pm> file in the previous section. You should now be able to
 go to L<http://localhost:3000/books/list> and login as before. When
 done, click the "logout" link on the login page (or point your browser
 at L<http://localhost:3000/logout>).
@@ -767,7 +766,7 @@ redirect with query parameters" code seen at the end of the
 L<Basic CRUD|Catalyst::Manual::Tutorial::04_BasicCRUD> chapter of the
 tutorial to take advantage of C<flash>.
 
-First, open C<lib/MyApp/Controller/Books.pm> and modify C<sub delete> to
+First, open F<lib/MyApp/Controller/Books.pm> and modify C<sub delete> to
 match the following (everything after the model search line of code has
 changed):
 
@@ -791,7 +790,7 @@ changed):
         $c->response->redirect($c->uri_for($self->action_for('list')));
     }
 
-Next, open C<root/src/wrapper.tt2> and update the TT code to pull from
+Next, open F<root/src/wrapper.tt2> and update the TT code to pull from
 flash vs. the C<status_msg> query parameter:
 
     ...
@@ -856,7 +855,7 @@ single time (even though the URL may continue to reference the token,
 it's only displayed the first time).  The use of C<StatusMessage>
 or a similar mechanism is recommended for all Catalyst applications.
 
-To enable C<StatusMessage>, first edit C<lib/MyApp.pm> and add
+To enable C<StatusMessage>, first edit F<lib/MyApp.pm> and add
 C<StatusMessage> to the list of plugins:
 
     use Catalyst qw/
@@ -875,7 +874,7 @@ C<StatusMessage> to the list of plugins:
         StatusMessage
     /;
 
-Then edit C<lib/MyApp/Controller/Books.pm> and modify the C<delete>
+Then edit F<lib/MyApp/Controller/Books.pm> and modify the C<delete>
 action to match the following:
 
     sub delete :Chained('object') :PathPart('delete') :Args(0) {
@@ -904,7 +903,7 @@ Next, we need to make sure that the list page will load display the
 message.  The easiest way to do this is to take advantage of the chained
 dispatch we implemented in
 L<Chapter 4|Catalyst::Manual::Tutorial::04_BasicCRUD>.  Edit
-C<lib/MyApp/Controller/Books.pm> again and update the C<base> action to
+F<lib/MyApp/Controller/Books.pm> again and update the C<base> action to
 match:
 
     sub base :Chained('/') :PathPart('books') :CaptureArgs(0) {
@@ -932,7 +931,7 @@ to:
     sub list :Chained('base') :PathPart('list') :Args(0) {
 
 Finally, let's clean up the status/error message code in our wrapper
-template.  Edit C<root/src/wrapper.tt2> and change the "content" div
+template.  Edit F<root/src/wrapper.tt2> and change the "content" div
 to match the following:
 
     <div id="content">
index b28fc08..72fa1ee 100644 (file)
@@ -83,7 +83,7 @@ directory, enter:
     $ prove -wl t
 
 There will be a lot of output because we have the C<-Debug> flag enabled
-in C<lib/MyApp.pm> (see the C<CATALYST_DEBUG=0> tip below for a quick
+in F<lib/MyApp.pm> (see the C<CATALYST_DEBUG=0> tip below for a quick
 and easy way to reduce the clutter).  Look for lines like this for
 errors:
 
@@ -95,7 +95,7 @@ The redirection used by the Authentication plugins will cause several
 failures in the default tests.  You can fix this by making the following
 changes:
 
-1) Change the line in C<t/01app.t> that reads:
+1) Change the line in F<t/01app.t> that reads:
 
     ok( request('/')->is_success, 'Request should succeed' );
 
@@ -103,7 +103,7 @@ to:
 
     ok( request('/login')->is_success, 'Request should succeed' );
 
-2) Change the line in C<t/controller_Logout.t> that reads:
+2) Change the line in F<t/controller_Logout.t> that reads:
 
     ok( request('/logout')->is_success, 'Request should succeed' );
 
@@ -111,7 +111,7 @@ to:
 
     ok( request('/logout')->is_redirect, 'Request should succeed' );
 
-3) Change the line in C<t/controller_Books.t> that reads:
+3) Change the line in F<t/controller_Books.t> that reads:
 
     ok( request('/books')->is_success, 'Request should succeed' );
 
@@ -119,7 +119,7 @@ to:
 
     ok( request('/books')->is_redirect, 'Request should succeed' );
 
-4) Add the following statement to the top of C<t/view_HTML.t>:
+4) Add the following statement to the top of F<t/view_HTML.t>:
 
     use MyApp;
 
@@ -127,13 +127,13 @@ As you can see in the C<prove> command line above, the C<-l> option (or
 C<--lib> if you prefer) is used to set the location of the Catalyst
 C<lib> directory.  With this command, you will get all of the usual
 development server debug output, something most people prefer to disable
-while running tests cases.  Although you can edit the C<lib/MyApp.pm> to
+while running tests cases.  Although you can edit the F<lib/MyApp.pm> to
 comment out the C<-Debug> plugin, it's generally easier to simply set
 the C<CATALYST_DEBUG=0> environment variable.  For example:
 
     $ CATALYST_DEBUG=0 prove -wl t
 
-During the C<t/02pod> and C<t/03podcoverage> tests, you might notice the
+During the F<t/02pod.t> and F<t/03podcoverage.t> tests, you might notice the
 C<all skipped: set TEST_POD to enable this test> warning message.  To
 execute the Pod-related tests, add C<TEST_POD=1> to the C<prove>
 command:
@@ -175,7 +175,7 @@ a user "clicking around" inside your application.  It gives you all the
 benefits of testing on a live system without the messiness of having to
 use an actual web server, and a real person to do the clicking.
 
-To create a sample test case, open the C<t/live_app01.t> file in your
+To create a sample test case, open the F<t/live_app01.t> file in your
 editor and enter the following:
 
     #!/usr/bin/env perl
@@ -282,7 +282,7 @@ editor and enter the following:
 
     done_testing;
 
-The C<live_app.t> test cases uses copious comments to explain each step
+The F<live_app.t> test cases uses copious comments to explain each step
 of the process.  In addition to the techniques shown here, there are a
 variety of other methods available in L<Test::WWW::Mechanize::Catalyst>
 (for example, regex-based matching). Consult
@@ -357,7 +357,7 @@ databases.
 
 One solution is to allow the database specification to be overridden
 with an environment variable.  For example, open
-C<lib/MyApp/Model/DB.pm> in your editor and change the
+F<lib/MyApp/Model/DB.pm> in your editor and change the
 C<< __PACKAGE__->config(... >> declaration to resemble:
 
     my $dsn = $ENV{MYAPP_DSN} ||= 'dbi:SQLite:myapp.db';
@@ -392,8 +392,8 @@ development (or vice versa).
 
 Setting C<$ENV{ MYAPP_CONFIG_LOCAL_SUFFIX }> to 'testing' in your test
 script results in loading of an additional config file named
-C<myapp_testing.conf> after C<myapp.conf> which will override any
-parameters in C<myapp.conf>.
+F<myapp_testing.conf> after F<myapp.conf> which will override any
+parameters in F<myapp.conf>.
 
 You should set the environment variable in the BEGIN block of your test
 script to make sure it's set before your Catalyst application is
index c3fd466..e898f4b 100644 (file)
@@ -78,7 +78,7 @@ L<Chapter 4|Catalyst::Manual::Tutorial::04_BasicCRUD>.
 
 =head2 Inherit From Catalyst::Controller::HTML::FormFu
 
-First, change your C<lib/MyApp/Controller/Books.pm> to inherit from
+First, change your F<lib/MyApp/Controller/Books.pm> to inherit from
 L<Catalyst::Controller::HTML::FormFu> by changing the C<extends> line
 from the default of:
 
@@ -99,7 +99,7 @@ to your C<Makefile.PL>.
 
 =head2 Add Action to Display and Save the Form
 
-Open C<lib/MyApp/Controller/Books.pm> in your editor and add the
+Open F<lib/MyApp/Controller/Books.pm> in your editor and add the
 following method:
 
     =head2 formfu_create
@@ -153,7 +153,7 @@ to hold your form configuration files:
 
     $ mkdir -p root/forms/books
 
-Then create the file C<root/forms/books/formfu_create.yml> and enter the
+Then create the file F<root/forms/books/formfu_create.yml> and enter the
 following text:
 
     ---
@@ -192,13 +192,13 @@ following text:
           value: Submit
 
 B<NOTE:> Copying and pasting YAML from Perl documentation is sometimes
-tricky.  See the L<Config::General Config for this tutorial> section of
+tricky.  See the L</Config::General Config for this tutorial> section of
 this document for a more foolproof config format.
 
 
 =head2 Update the CSS
 
-Edit C<root/static/css/main.css> and add the following lines to the
+Edit F<root/static/css/main.css> and add the following lines to the
 bottom of the file:
 
     ...
@@ -218,7 +218,7 @@ These changes will display form elements vertically.
 
 =head2 Create a Template Page To Display The Form
 
-Open C<root/src/books/formfu_create.tt2> in your editor and enter the
+Open F<root/src/books/formfu_create.tt2> in your editor and enter the
 following:
 
     [% META title = 'Create/Update Book' %]
@@ -232,7 +232,7 @@ following:
 
 =head2 Add Links for Create and Update via C<HTML::FormFu>
 
-Open C<root/src/books/list.tt2> in your editor and add the following to
+Open F<root/src/books/list.tt2> in your editor and add the following to
 the bottom of the existing file:
 
     ...
@@ -291,7 +291,7 @@ whitespace from fields or to escape meta-characters in user input.
 
 =head2 Add Constraints
 
-Open C<root/forms/books/formfu_create.yml> in your editor and update it
+Open F<root/forms/books/formfu_create.yml> in your editor and update it
 to match:
 
     ---
@@ -389,7 +389,7 @@ The main changes are:
 
 The C<Select> element for C<authors> is changed from a single-select
 drop-down to a multi-select list by adding configuration for the
-C<multiple> and C<size> options in C<formfu_create.yml>.
+C<multiple> and C<size> options in F<formfu_create.yml>.
 
 =item *
 
@@ -422,7 +422,7 @@ the YAML file each time a controller action uses it.
 =head1 CREATE AND UPDATE/EDIT ACTION
 
 Let's expand the work done above to add an edit action.  First, open
-C<lib/MyApp/Controller/Books.pm> and add the following method to the
+F<lib/MyApp/Controller/Books.pm> and add the following method to the
 bottom:
 
     =head2 formfu_edit
@@ -491,7 +491,7 @@ the common code in separate methods).  The main differences are:
 We have to manually specify the name of the FormFu .yml file as an
 argument to C<:FormConfig> because the name can no longer be
 automatically deduced from the name of our action/method (by default,
-FormFu would look for a file named C<books/formfu_edit.yml>).
+FormFu would look for a file named F<books/formfu_edit.yml>).
 
 =item *
 
@@ -522,7 +522,7 @@ from the database.
 
 =back
 
-Then, edit C<root/src/books/list.tt2> and add a new link below the
+Then, edit F<root/src/books/list.tt2> and add a new link below the
 existing "Delete" link that allows us to edit/update each existing book.
 The last <td> cell in the book list table should look like the
 following:
@@ -589,8 +589,8 @@ real reason you worked through this Tutorial in the first place.
 =head2 Config::General Config for this tutorial
 
 If you are having difficulty with YAML config above, please save the
-below into the file C<formfu_create.conf> and delete the
-C<formfu_create.yml> file.  The below is in L<Config::General> format
+below into the file F<formfu_create.conf> and delete the
+F<formfu_create.yml> file.  The below is in L<Config::General> format
 which follows the syntax of Apache config files.
 
    constraints   Required
index 60c554f..ff372ea 100644 (file)
@@ -82,7 +82,7 @@ Also, add:
 
     requires 'HTML::FormHandler::Model::DBIC';
 
-to your C<Makefile.PL>.
+to your F<Makefile.PL>.
 
 =head1 HTML::FormHandler FORM CREATION
 
@@ -97,7 +97,7 @@ to a form is only a couple of lines of code.
 
 =head2 Create a Book Form
 
-Create the directory C<lib/MyApp/Form>. Create C<lib/MyApp/Form/Book.pm>:
+Create the directory F<lib/MyApp/Form>. Create F<lib/MyApp/Form/Book.pm>:
 
     package MyApp::Form::Book;
 
@@ -117,7 +117,7 @@ Create the directory C<lib/MyApp/Form>. Create C<lib/MyApp/Form/Book.pm>:
 
 =head2 Add Action to Display and Save the Form
 
-At the top of the C<lib/MyApp/Controller/Books.pm> add:
+At the top of the F<lib/MyApp/Controller/Books.pm> add:
 
    use MyApp::Form::Book;
 
@@ -161,7 +161,7 @@ method later when we implement 'edit'.
 
 =head2 Create a Template Page To Display The Form
 
-Open C<root/src/books/form.tt2> in your editor and enter the following:
+Open F<root/src/books/form.tt2> in your editor and enter the following:
 
     [% META title = 'Create/Update Book' %]
 
@@ -173,7 +173,7 @@ Open C<root/src/books/form.tt2> in your editor and enter the following:
 
 =head2 Add Link for Create
 
-Open C<root/src/books/list.tt2> in your editor and add the following to
+Open F<root/src/books/list.tt2> in your editor and add the following to
 the bottom of the existing file:
 
     ...
@@ -211,7 +211,7 @@ integers.
 
 =head2 Add Constraints
 
-Open C<lib/MyApp/Form/Book.pm> in your editor.
+Open F<lib/MyApp/Form/Book.pm> in your editor.
 
 Restrict the title size and make it required:
 
@@ -245,7 +245,7 @@ rating of 0 or 6, etc.  Also try selecting one, two, and zero authors.
 
 =head2 Create the 'edit' method
 
-Edit C<lib/MyApp/Controller/Books.pm> and add the following method:
+Edit F<lib/MyApp/Controller/Books.pm> and add the following method:
 
 
     =head2 edit
@@ -260,7 +260,7 @@ Edit C<lib/MyApp/Controller/Books.pm> and add the following method:
         return $self->form($c, $c->stash->{object});
     }
 
-Update the C<root/src/books/list.tt2>, adding an 'edit' link below the
+Update the F<root/src/books/list.tt2>, adding an 'edit' link below the
 "Delete" link to use the FormHandler edit method:
 
     <td>
index 0d0b3ae..d53afe8 100644 (file)
@@ -181,7 +181,7 @@ items via this command:
     sudo aptitude install postgresql libdbd-pg-perl libdatetime-format-pg-perl
 
 To configure the permissions, you can open
-C</etc/postgresql/8.3/main/pg_hba.conf> and change this line (near the
+F</etc/postgresql/8.3/main/pg_hba.conf> and change this line (near the
 bottom):
 
     # "local" is for Unix domain socket connections only
@@ -221,7 +221,7 @@ Create the C<.sql> file and load the data:
 
 =item *
 
-Open the C<myapp01_psql.sql> in your editor and enter:
+Open the F<myapp01_psql.sql> in your editor and enter:
 
     --
     -- Drops just in case you are reloading
@@ -396,7 +396,7 @@ Chapter 5: Authentication
 
 Create the C<.sql> file for the user/roles data:
 
-Open C<myapp02_psql.sql> in your editor and enter:
+Open F<myapp02_psql.sql> in your editor and enter:
 
     --
     -- Add users and roles tables, along with a many-to-many join table
@@ -477,7 +477,7 @@ Confirm with:
 
 =item *
 
-Modify C<set_hashed_passwords.pl> to match the following (the only difference
+Modify F<set_hashed_passwords.pl> to match the following (the only difference
 is the C<connect> line):
 
     #!/usr/bin/perl
@@ -496,7 +496,7 @@ is the C<connect> line):
         $user->update;
     }
 
-Run the C<set_hashed_passwords.pl> as per the "normal" flow of the
+Run the F<set_hashed_passwords.pl> as per the "normal" flow of the
 tutorial:
 
     $ perl -Ilib set_hashed_passwords.pl
@@ -610,7 +610,7 @@ Create the C<.sql> file and load the data:
 
 =item *
 
-Open the C<myapp01_mysql.sql> in your editor and enter:
+Open the F<myapp01_mysql.sql> in your editor and enter:
 
     --
     -- Create a very simple database to hold book and author information
@@ -745,7 +745,7 @@ Chapter 5: Authentication
 
 Create the C<.sql> file for the user/roles data:
 
-Open C<myapp02_mysql.sql> in your editor and enter:
+Open F<myapp02_mysql.sql> in your editor and enter:
 
     --
     -- Add users and roles tables, along with a many-to-many join table
@@ -818,7 +818,7 @@ Regenerate the model using the Catalyst "_create.pl" script:
 
 Create the C<.sql> file for the hashed password data:
 
-Open C<myapp03_mysql.sql> in your editor and enter:
+Open F<myapp03_mysql.sql> in your editor and enter:
 
     --
     -- Convert passwords to SHA-1 hashes