Beefy Boxes and Bandwidth Generously Provided by pair Networks Joe
Just another Perl shrine
 
PerlMonks  

Re: Filters within a filter...

by fauria (Deacon)
on Feb 04, 2005 at 11:39 UTC ( [id://428116]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Filters within a filter...

Hi!

When using perl, you can pipe in your commands by using this:

while(<STDIN>){ print "Current line is storaged in: ".$_; chop; print "Current line without new line character: ".$_."\n"; }

For example: cat /etc/services | perl foo.pl

STDIN can be changed to STDERR. Whitout input, acts like read in bash (i think its the same in ksh).

There is also an operator called "diamond operator", which is represented by "<>", and means "whatever file passed as an argument, or whatever is piped into":

while(<>){ chop; print "I have $_ as input\n"; }

For example: perl foo.pl /etc/services /etc/hosts

From here, you can operate $_ (current line) in any way you like, using regex, awk like operations, etc. You can save your converted text by redirecting output to a file from command line, or inside your perl script.

Tip: Syntax used for regex in sed is very similar than the one used in perl.

For a translation from awk to perl, you can try "a2p" (man a2p).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://428116]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.