I think u would need the "grep" function here instead of "map".

Map returns the results of the evaluation of expression which is '1' in ur case 
because u matched.
Grep returns the actual elements of the list for which the expression was true.

try:

my @ptrRecords = grep{/.*\s+PTR\s+.*/[EMAIL PROTECTED]

-Sharad



-----Original Message-----
From: Lance Murray [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 08, 2003 1:10 PM
To: [EMAIL PROTECTED]
Subject: map() returns scalar value instead of match string?


Hello:
 
I'm very excited when I discovered the map function, however, I cannot seem to get it 
to do what I want in this instance:
 
  chomp (my @strings = `strings *`);
  my $var;
  my @ptrRecords = map ((/.*\s+PTR\s+.*/), @strings );   #  <- LINE IN QUESTION
  foreach (@ptrRecords) { print "$_\n" };

What I am trying to do is get all PTR records in a DNS BIND directory into 
@ptrRecords, e.g., 

  What I'm gettingin @ptrRecords (1 = scalar match):
  1
  1
  [...]
 
  What I want in @ptrRecords (actual match string):
  12   PTR ldsslcs_cab4_12.infra.chq.slc.ut.usa.wh.lds.
  13   PTR ldsslcs_cab4_13.infra.chq.slc.ut.usa.wh.lds.
  [...]
 
 
I'd really appreciate some help figuring out where I'm going wrong.  I know I could 
iterate through @strings using a while loop and push statements to @ptrRecords, but 
I'd rather use the map function which seems far more elegant to me.  I'm hoping to be 
a Perl idiot savant someday, but I obviously have a ways to go (at least in the savant 
category).
 
Thanks!
 
Lance
 
-----------------------------------------------------------------------------
 "Better to do a little well than a lot poorly" (Socrates)


------------------------------------------------------------------------------
This message may contain confidential information, and is intended only for the use of 
the individual(s) to whom it is addressed.


==============================================================================

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to