in reply to How can you split inside pop?

You're aware you could just use a negative index, right?

#!/usr/bin/perl -wl use strict; my $str = "this is a string"; print +(split /\s/,$str)[-1]; __END__ outputs: string

But yes, pop just works on arrays. Note what pop really does: it REMOVES that last item from the array and returns the removed element. Just as you can't do substr("hello",0,1) = ""; because altering a constant value makes no sense, you can't pop lists.

Hope this helps.

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

Replies are listed 'Best First'.
Re: Re: How can you split inside pop?
by dragonchild (Archbishop) on Oct 15, 2003 at 16:02 UTC
    The +() syntax is often confusing. Try either of the following:
    my $x = "this is a string"; my $y = (split ' ', $x)[-1]; print "$y\n"; ######## OR ######## my $x = "this is a string"; print( (split ' ', $x)[-1], $/);

    That way, you avoid the scalar-context hack that is +().

    ------
    We are the carpenters and bricklayers of the Information Age.

    The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

    ... strings and arrays will suffice. As they are easily available as native data types in any sane language, ... - blokhead, speaking on evolutionary algorithms

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

      The +() syntax is often confusing.
      ...
      That way, you avoid the scalar-context hack that is +().

      Ummm, to whom? Those who don't know about it? Also, that's not scalar context. Don't believe me?

      # perl -wl $,=$"; print +(split " ","this is a string")[-1,1],"good"; __END__ string is good

      Yes. It's still the print LIST that we've all grown to know and love. I don't agree with your dislike of +() and I would tend not to refer to it as a hack. The only thing that the + does is disambiguate what the parentheses mean when perl attempts to parse it.

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