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.
  • Is this the perl-ish way to pass arguments by-value rather than by-alias?
    • Bingo! I needed to delete select pairs of items from an import list, but I couldn't do this:

      # we don't simply splice out because we're iterating by index
      @_[ $i, $i + 1 ] = (undef, undef) if $some_condition;
      # and later
      @_ = grep { defined } @_;

      The array slice assignment gave me a "modification of read-only value" error, hence the @_ = @_; statement.

      It all feels rather clumsy, but it works.

      • by jsn13 (6845) on 2006.04.09 2:07 (#47054) Journal
        why not just splice(@_, $i, 2) (or probably splice(@_, $i, 2, undef, undef), if you really need these undefs)?
        • I can't do the first because while I'm doing that, I'm iterating over the array by index. By using splice, I alter where everything is in the array and the indices are off. As for the second, I just didn't think about that. The array slice is what occurred to me first.