Stories
Slash Boxes
Comments
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

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • conditional checks in OO code prove themselves to be code smells.

    Thanks for the heuristic! I never realized that before! I think this will help improve my coding.

    (If there's a larger source where you picked that up, I'd be benefitted by a pointer.)

    --
    J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
    • I figured a concrete example would help. Imagine this awful method from some Catalyst code I was working on:

      sub _set_group_by : Private {
          my ( $self, $c ) = @_;
          my $group_by = 'day';
          my $period = $c->stash->{report_metadata}{period};

          my $report_range
                  = $c->stash->{report_metadata}{start}->day_month_year
                  . ' – '
               

      • sub report : Chained('somewhere?') PathPart('') CaptureArgs(0) {
            my ( $self, $c, @args ) = @_;
            $c->action->chain->[-1]->name =~ /\Areport_for_(.*)\z/
                or die 'Chain ends at action with malformed name';
            $c->stash->{report_metadata}{period} = $1;
            $c->forward('_set_start_and_end_dates'); # inline this?
        }

        sub report_day : Chained('report') PathPart('') CaptureArgs(0) {
            my ( $self, $c, @args ) = @_;