http://www.perlmonks.org?node_id=410254


in reply to Re: Pearls (not really) of Perl programming
in thread Pearls (not really) of Perl programming

What's bad about this? Sure, there are other ways to do it, but it doesn't seem particularly egregious to me. For those following along at home, here are some other ways:

$default_title =~ s/(.{50}).*/$1/; $default_title =~ s/./$ctr++<50?$&:""/ge; $default_title = pack "A50", $default_title; $default_title = join "", (split //, $default_title)[0..50];

Personally, I like the original much better than these alternatives. The only other way that I would possibly use is:

substr($default_title, 50) = "";

But substr as an lvalue is not something everyone knows about, so it's not clearly the best option.

Replies are listed 'Best First'.
Re^3: Pearls (not really) of Perl programming
by ihb (Deacon) on Nov 26, 2004 at 02:14 UTC

    More regex solutions: (don't forget the s modifier)

    ($default_title) = $default_title =~ /(.{0,50})/s; $default_title =~ s/(?<=.{50}).*//s;
    I'd also want to add
    substr($default_title, 50, length($default_title), '');
    and second you and the original isn't that bad.

    ihb

    See perltoc if you don't know which perldoc to read!
    Read argumentation in its context!