Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^4: How to write a program to read stdin or command line?

by ikegami (Patriarch)
on Oct 03, 2007 at 05:40 UTC ( [id://642305]=note: print w/replies, xml ) Need Help??


in reply to Re^3: How to write a program to read stdin or command line?
in thread How to write a program to read stdin or command line?

Assuming I was talking about the general case, how is -p less flexible? And how does -l matter?

perl -nle "print bar($_) unless foo($_)"
perl -ple "next if foo($_); $_=bar($_)"

Replies are listed 'Best First'.
Re^5: How to write a program to read stdin or command line?
by BrowserUk (Patriarch) on Oct 03, 2007 at 11:00 UTC

    With -p, whilst you can conditionally undef $_ to avoid it being printed; if you are also using -l, you will get unwanted blank lines:

    C:\test>type junk.txt 1 2 3 4 5 C:\test>perl -nle"$_ & 1 and print" junk.txt 1 3 5 C:\test>perl -ple"$_ & 1 or undef $_ and next" junk.txt 1 3 5

    And in fact the next in your example serves no purpose:

    C:\test>perl -ple"$_ & 1 or undef $_" junk.txt 1 3 5

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Yeah, I was confused, sorry.
Re^5: How to write a program to read stdin or command line? (-p next)
by tye (Sage) on Oct 03, 2007 at 05:47 UTC

    perl -ple "next" still prints every line, so, yes, -p is less flexible based on your fine examples.

    If you want to omit some lines from the output, you can't do that if you are also using -l

    My first reaction to that is that the final -l was supposed to be a -p. That would certainly make sense to me, but I can't say for sure that it is what was intended.

    - tye        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://642305]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2024-04-23 14:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found