$usr = system ("listusr | grep $_ | cut -d ' ' -f1,3");
Dear Monk,
Allow me to elaborate on what Corion has told you in the CB as well as here. Taking that line of
code above I'd break it out as:
# $usr = system ("listusr | grep $_ | cut -d ' ' -f1,3");
# becomes:
my @usr = map { (split(/[\t\n\s]+/,$_))[0,2] } grep /$_/,qx(listusr);
The problem with using
system is, if you look at the documentation for the function call, is it does not
return the IO stream of the execution like you think it might but it just executes the command and sends
any output to STDOUT which you are not capturing in any way by using
system. Using
qx captures STDOUT and returns it as an array. See
perlop for more info...
UPDATE: simplified the <code>map{ split(...)} stuff at Corion's suggestion. (Thanks Corion!)
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.