OK - I figured it out - thanks.
This works fine: my($fn2) = grep ( $_ =~ '6' , glob 'f*');
What I'm confused about is the parens around the $fn2 ? Why are those
needed? Something tells me that has something to do with making the
scalar $fn2 into a list 'cause that's what grep returns, but i can't
remember what that's called to look it up.
help?
pg
On Aug 7, 1:23*pm, pgodfrin <pgodf...@gmail.com> wrote:
> hmmm - what if I wanted to do some search on the glob?
> like my($fn) = grep ( /5/ , glob 'f*');
> ?
> pg
> On Aug 7, 12:23*pm, pgodfrin <pgodf...@gmail.com> wrote:
>
> > Thanks Tad - works like a charm...
> > pg
>
> > On Aug 7, 12:06*pm, Tad J McClellan <ta...@seesig.invalid> wrote:
>
> > > pgodfrin <pgodf...@gmail.com> wrote:
> > > > Greetings,
> > > > This program works fine (with file names f1..f8 in the directory):
>
> > > > #!/usr/bin/perl
> > > > use warnings;
> > > > use strict;
> > > > $\="\n";
> > > > while(<f*>)
> > > > {
> > > > * * print "$_";
> > > > * * if(/f5/)
> > > > * * {
> > > > * * * * my $fn=$_;
> > > > * * * * print "File name $fn found..." and exit;
> > > > * * }
> > > > }
> > > > exit;
>
> > > > But I was hoping to be able to do something like:
> > > > my $fn=grep (/f5/,<f*>);
>
> > > > Basically just trying to have less lines of code...any suggestions?
>
> > > use grep() in a list context instead of in a scalar context.
>
> > > I don't like using overloaded angle brackets in my code.
>
> > > If I want equality, I use an operator that tests for equality.
>
> > > * * my($fn) = grep ( $_ eq 'f5' , glob 'f*');
>
> > > --
> > > Tad McClellan
> > > email: perl -le "print scalar reverse qq/moc.noitatibaher\100cmdat/"
>
>
|