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

use Perl Log In

Log In

[ Create a new account ]

Ovid (2709)

Ovid
  (email not shown publicly)
http://publius-ovidius.livejournal.com/
AOL IM: ovidperl (Add Buddy, Send Message)

Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.

Journal of Ovid (2709)

Monday November 03, 2003
07:57 PM

Fixing warnings 'n other stuff

[ #15542 ]

:(

sub convert_to_list {
    my $self = shift;
    my @args = split / -/, $self->arguments;

    # Special case, since map does x for each element and we don't want to add a - to the first element (because of split).
    my $first_arg = shift @args;

    @args = map { '-' . $_ } @args;
    unshift @args, $first_arg;

    return @args;
}

:)

sub convert_to_list {
    my $self = shift;
    return () unless $self->arguments;
    return split / (?=-)/ $self->arguments;
}

I love Perl :)

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.
  • sub convert_to_list {
        my $self = shift;
        # Return knows if it's a scalar or array context!
        my $args = $self->arguments or return;
        return split / (?=-)/, $args;
    }
    • In theory, that looks good and if I were calling the shots, it would be. However, consider the following:

      some_func(other_func1(), other_func2());

      If one of the "other funcs" has a bare return, some_func() will be passed a list with only one element! You can get around this by prepending the function calls with scalar, but that is not done in the shop I work at, yet function calls are often embedded in other function calls. Thus, we have explicit return values. If only one value is being returned, we

  • zero (Score:2, Insightful)

    So $self->arguments returning "0" needs to be ignored?