Steve Bertrand wrote:
> 
> Can someone explain to me how I can fix this up to achieve my desired 
> results?
> 
> my $time = (split (/:/, (grep (/^info/, @contents))))[0];
> 
> A sample snip of data:
> 
> this382:3828
> info447:4729
> that274:9294
> 
> ...and I just want the $time to become info447.
> 
> The way I think it works is:
> 
> - grep out the single entry from the @contents array
> - split that entry on the : delimiter
> - insert into $time the first element of the split
> 
> I can do it with more than one line, but I've become accustomed to using 
> split in array fashion, however, never with grep before.

 my ($time) = grep /^info/, map /([^:]*)/, @contents;

But, unless you are simply playing a game, I am not impressed by any attempt to
reduce solutions to a single line. The difficult thing is to write visible and
maintainable code - there are many people about who can write something reduced
and incomprehensible.

If your post is about production code then, once you have found a solution you
like, please throw it away and rewrite it using several lines of code.

Rob

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to