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/