Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

jonasbn (1153)

  reversethis-{gro.napc} {ta} {nbsanoj}
AOL IM: BJonasN (Add Buddy, Send Message)

Perl Programmer located in Copenhagen, Denmark. Active member of Copenhagen Perl Mongers.

Author of:

  • Business::DK::CPR
  • Business::DK::CVR
  • Business::DK::PO
  • Business::OnlinePayment::CashCow
  • Date::Holidays
  • Date::Holidays::Abstract
  • Date::Holidays::Super
  • Date::Pregnancy
  • Games::Bingo
  • Games::Bingo::Bot
  • Games::Bingo::Print
  • Module::Info::File
  • Module::Template::Setup
  • Test::Timer

and maintainer of:

  • Tie::Tools
  • XML::Conf
  • Workflow

Journal of jonasbn (1153)

Tuesday June 03, 2008
04:16 PM

FAIL Games-Bingo-0.15 MSWin32-x86-multi-thread 5.1

[ #36580 ]

I really, really appreciate the cpan-testers, they help me get my stuff tested.

Yesterday I received a report on a failure with my Games-Bingo.

I skimmed the report and I could not really see what test was failing. After reading it a few times I located this block which seemed to list the problem:


Output from 'C:\strawberry\perl\bin\perl.exe ./Build':

Undefined fragment '0' (0) from fragment_id() in emit_item_tag() in blib\lib\Games\ at C:/strawberry/perl/lib/Pod/ line 1133
        Pod::Html::emit_item_tag(0, 0, 1) called at C:/strawberry/perl/lib/Pod/ line 1193
        Pod::Html::process_item(undef) called at C:/strawberry/perl/lib/Pod/ line 546
        Pod::Html::pod2html('--flush', '--title=Games::Bingo - a bingo game Perl implementation', '--podpath=script:lib', '--infile=blib\lib\Games\', '--outfile=blib\libhtml\site\lib\Games\Bingo.html', '--podroot=blib', '--htmlroot=../../../site', '--header', '--backlink=Back to Top', ...) called at C:/strawberry/perl/lib/Module/Build/ line 2719

This does to me not look at a failing test or problem in Games::Bingo.

The problem seems to be from the following POD:

These are the different values:

=over 4

=item * 0

Game is over

=item * 1

full card (the default)

=item * 2

2 rows

=item * 3

1 row


And the culprit seems to be:

=item * 0

Games::Bingo passes POD tests, so now I have been presented with a problem I want to address.

So I would like to bring this forward to the right person, so who would this be?

David Landgren, maintainer of Pod::Html


Adam Kennedy, maintainer of Strawberry Perl


David Golden who sent the report and he has some interest in CPAN reporting, since the report present some problems.

1. The HTML generation is not a part of my test suite
2. I cannot read from the report what version of Html::Pod is failing might be having a problem

The complete report is available, suggestions are welcome...

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Well, that's a heck of a tricky failure.

    As the culprit (as it were), I would suggest the following:

    • Pod::HTML -- needs to do something smarter with things it doesn't understand. Report that as a bug.
    • Module::Build -- probably shouldn't let HTML errors be fatal. Report that as a bug.
    • Your Pod doesn't render well on either -- you should probably try a different construct anyway, e.g.:

    =item 0

    This is item 0

    =item 1

    This is item 1

    And so on.

    Use the pod2html preview [] to see how it l

    • Hmmm, the POD does not even render as expected viewing perldoc.

              These are the different values:

              =over 4

              =item * 0

              Game is over

              =item * 1

              full card (the default)

      Renders to:

              These are the different values:

              o Game is over

              o 1

      • perlpodspec is pretty ambiguous about it. I think it implies that it should work, but it doesn't really say it. It's probably a bug.

        Generally, I think it's best if one uses the "=item X" paragraph *only* for defining "the bullet" part of the list and using a separate paragraph afterwards for the content. E.g.

        # a list of bulleted numbers


        =item *


        =item *

        0 is a number



      • Looks like someone is testing the string following the bullet with something like if ( $headline ) as opposed to if ( defined $headline and length $headline ). Check what happens if you say =item * Z<>0.

        (In 5.12, the need for the defined will go away because length undef will silently return undef rather than warning and returning 0.)

        But I agree with David that you should not put a bullet and headline on the =item line.

  • From a Strawberry perspective, I don't have any custom code, I just bundle what comes in the core and the very latest versions of everything at each release time.

    As an aside though, I am going to be removing all man/html doc pre-generation once I work out how to abuse the Makefile properly.

    So this problem on Strawberry will be moved from install time to run-time (inside of Pod::POM::Web for example.