Close, but grep returns a list, not a scalar. Forcing the return value in a scalar, as you do, will get you the number of elements in it, or in your case the number of elements starting with 1006. Also, you might look into split to get to the second field in the element:
print (split /,/,$_)[1] for grep /^1006/, @array; #UNTESTED
As a better solution for this problem, consider using a hash instead of an array to store your data (that is, if the first field in your data is unique). Hashes are built for fast text searches:
use strict;
my %hash=qw(1001 choochoo 1002 candycane 1003 sockpuppet);
print $hash{'1003'};
__END__
sockpuppet
CU Robartes-
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|