in reply to Re: Re: Re: Using s///e and it just doesn't feel right
in thread Using s///e and it just doesn't feel right

It is addressed in the Perl FAQ.

There are a lot of things you can do with Perl that you shouldn't do.

  • Comment on Re: Re: Re: Re: Using s///e and it just doesn't feel right

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Using s///e and it just doesn't feel right
by antirice (Priest) on Jun 20, 2003 at 16:58 UTC
    #!/usr/bin/perl use strict; sub bob { map { print "$_$/" } @_; } my @thing = qw(tom dick harry); bob(@thing); print "============$/"; my @results = bob(@thing); print "We printed " . (scalar @results) . " items$/";

    antirice    
    The first rule of Perl club is - use Perl
    The
    ith rule of Perl club is - follow rule i - 1 for i > 1

      but that uses the return from map, although it's hidden.

      I don't see why using map in a void context is so wrong. Sometimes it expresses something better, particularly if the order of operation doesn't matter:

      map {transform($_)} @elements; # transform() does something inline
      A massive flamewar beneath your chosen depth has not been shown here
        Is that more expressive to you than something like this:

        trasform $_ foreach @elements;

        If so, how?

        This first call to bob uses a map in void context whereas the second call does not. The point was to imply the question of whether I should use two different subs to perform the same task having only the difference that one returns a list and the other returns nothing.

        bunnyman: [In response to: And why then is map allowed to be called in void context?] There are a lot of things you can do with Perl that you shouldn't do.

        Following that logic, I should create two subs. Perl takes the stance of TIMTOWTDI. Why not let the programmer determine what should be used instead of laying down a draconian policy?

        dash2, this isn't directed towards you (considering we are basically on the same platform with this one). I'm just saying what I thought was obviously implied by the code.

        antirice    
        The first rule of Perl club is - use Perl
        The
        ith rule of Perl club is - follow rule i - 1 for i > 1