Rob Dixon wrote:
Richard Lee wrote:
#!/usr/bin/perl
use warnings;
use strict;
my @array = qw/one two three four/;
print "$_\n" for @array last if "$_" eq q/three/;
[EMAIL PROTECTED] tmp]# ./!$
././././testthis2.pl
syntax error at ././././testthis2.pl line 8, near "@array last "
Execution of ././././testthis2.pl aborted due to compilation errors.
Can someone fix my last statement on this program?
I thought maybe this will work but guess not... is there no easy way
to do this?
I don't want to do
for (@array) {
if .......
}
}
just trying to see what the correct format is that for one liner that I
am trying
And you want to write it in one line why?
print "$_\n" for grep /one/ .. /three/, @array;
But there's nothing wrong with
foreach (@array) {
print "$_\n";
last if /three/;
}
Rob
#!/usr/bin/perl
use warnings;
use strict;
my @array = qw/one two three four/;
print "$_\n" for grep /three/, @array;
[EMAIL PROTECTED] tmp]# !$
./test5.pl
three
this works well. However, that goes through entire array.. right?
So there is no true way to squeeze in the ' last ' .. ?
main reason is to see if it's doable(I like some of perl's idioms) and
whether it is possible
The other reason is because I have a big array which I have to look in
by 3 different steps
and I wanted to avoid 3 foreach loop in a row which key depends on
preceding code and wanted to just go
---- simplied version----
my $something = $_ for @array last if "$_" eq q/three/;
my $something1 = $_ for @array last if "$_" eq q/$something/;
my $something2 = $_ for @array last if "$_" eq q/$something1/;
Anyway, I will try your code and report back.
thank you.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/