pa...@compugenic.com wrote:
I want to extract a list of postfix's queue id's. The 'mailq' command
returns output as follows:
--
8C0597408D 2503 Tue Feb 17 16:15:34 ka...@domain.org
(connect to bar-plate.com[209.62.20.192]:25: Connection refused)
staffo...@bar-plate.com
88E8E7409E 1881 Tue Feb 17 23:37:40 dia...@domain.org
(connect to mail.fbig.com[70.68.160.253]:25: Connection timed out)
persistencer5...@fbig.com
--
right now I'm doing the following:
my @ids;
foreach (`mailq`) {
next unless /^\w+/;
chomp;
push @ids, (split)[0];
}
I know it can be done with one line. Here's what I've got so far:
my @ids = map {chomp; (split)[0] if /^\w/} `mailq`;
You don't need chomp() because split() removes *all* whitespace, and
besides you are only using the first field.
This 'kinda' works, but it also adds a bunch of blank elements to the
@ids array. What am I doing wrong?
my @ids = map /^\w/ ? (split)[0] : (), `mailq`;
John
--
Those people who think they know everything are a great
annoyance to those of us who do. -- Isaac Asimov
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/