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]