The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<documentation title="Switch Declarations">
    <standard>
    <![CDATA[
    Case statments should be indented 4 spaces from the switch keyword.  It should also be followed by a space.  Colons in switch declarations should not be preceded by whitespace.  Break statements should be indented 4 more spaces from the case statement.  There must be a comment when falling through from one case into the next.
    ]]>
    </standard>
    <code_comparison>
        <code title="Valid: Case statement indented correctly.">
        <![CDATA[
switch ($foo) {
<em>    </em>case 'bar':
        break;
}
        ]]>
        </code>
        <code title="Invalid: Case statement not indented 4 spaces.">
        <![CDATA[
switch ($foo) {
<em></em>case 'bar':
    break;
}
        ]]>
        </code>
    </code_comparison>
    <code_comparison>
        <code title="Valid: Case statement followed by 1 space.">
        <![CDATA[
switch ($foo) {
    case<em> </em>'bar':
        break;
}
        ]]>
        </code>
        <code title="Invalid: Case statement not followed by 1 space.">
        <![CDATA[
switch ($foo) {
    case<em></em>'bar':
        break;
}
        ]]>
        </code>
    </code_comparison>
    <code_comparison>
        <code title="Valid: Colons not prefixed by whitespace.">
        <![CDATA[
switch ($foo) {
    case 'bar'<em></em>:
        break;
    default<em></em>:
        break;
}
        ]]>
        </code>
        <code title="Invalid: Colons prefixed by whitespace.">
        <![CDATA[
switch ($foo) {
    case 'bar'<em> </em>:
        break;
    default<em> </em>:
        break;
}
        ]]>
        </code>
    </code_comparison>
    <code_comparison>
        <code title="Valid: Break statement indented correctly.">
        <![CDATA[
switch ($foo) {
    case 'bar':
<em>        </em>break;
}
        ]]>
        </code>
        <code title="Invalid: Break statement not indented 4 spaces.">
        <![CDATA[
switch ($foo) {
    case 'bar':
<em>    </em>break;
}
        ]]>
        </code>
    </code_comparison>
    <code_comparison>
        <code title="Valid: Comment marking intentional fall-through.">
        <![CDATA[
switch ($foo) {
    case 'bar':
    <em>// no break</em>
    default<em></em>:
        break;
}
        ]]>
        </code>
        <code title="Invalid: No comment marking intentional fall-through.">
        <![CDATA[
switch ($foo) {
    case 'bar':
    default<em></em>:
        break;
}
        ]]>
        </code>
    </code_comparison>
</documentation>