Bob Ackerman wrote: > > I am used to indexing a string in other languages, so i would like to say > $x="abcd"; > print $x[3]; > and see 'd' printed, but, of course, this isn't correct in perl. > > so i did > @y=split(//,"abcd"); > print $y[2],"\n"; > > and that's fine. > > now, how do i do that without an intermediate array. > i want to say > print split(//,"abcd")[1],"\n"; > > but i get compilation error. > > or is there some built-in way to index a string?
You need parenthesis to get a list context for the [1] to work, so: print( (split(//, "abcd"))[1], "\n"); Or: print( (split //, "abcd")[1], "\n"); Or: print +(split //, "abcd")[1], "\n"; Or: print substr("abcd", 1, 1), "\n"; Or: print unpack("xa", "abcd"), "\n"; John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]