Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re: Uncommon but Useful Perl Command Line Options

by hardburn (Abbot)
on Jan 28, 2004 at 22:01 UTC ( #324810=note: print w/replies, xml ) Need Help??

in reply to Uncommon* but Useful Perl Command Line Options for One-liners

'-l' has a dual nature - on input it behaves like chomp(), automatically removing newline characters, while on output, as we've seen, it becomes the anti-chomp, adding newlines.
. . .
-0 . . . Using this is like messing with $/ in a script . . .

For completeness, I would mention that '-l' is implemented by messing with $\ and $/:

$ perl -MO=Deparse -le '' -e syntax OK BEGIN { $/ = "\n"; $\ = "\n"; } ();

Also, you can specifiy a different character (in octal) on the command line for -l to use for $\ (output records):

$ perl -MO=Deparse -l001 -e '' -e syntax OK BEGIN { $/ = "\n"; $\ = "\001"; } ();

-0 can also take an octal number, but this time it sets $/ (input records):

$ perl -MO=Deparse -0001 -e '' -e syntax OK BEGIN { $/ = "\001"; $\ = undef; } ();

I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer

: () { :|:& };:

Note: All code is untested, unless otherwise stated

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://324810]
[Corion]: erix: There is somebody who has hacked up some Ruby scripts to do just that, but the Ruby scripts have some hardcoded #defines (well, reimplement those), so the extraction doesn't compile for Windows...
[Corion]: libpg_query
[Corion]: ... and I think "porting" it basically means (re)implementing a C preprocessor and feeding that one with the appropriate #defines for the platforms, and/or providing stub implementations for OS-specific functions that the query parser really wants to call
[erix]: ah, interesting. Well, sounds like a good start..
[Corion]: In the long run, obviously, the parser wouldn't need/call OS-specific stuff anyway, but we're a long way from that :D
[Corion]: erix: Yeah - I think basically the solution should be a "fake_os.h", which implements just enough stub routines for any OS to make the compilation of the parser pass. But for that, the complete (relevant) source code needs to be extracted, and the ...
[Corion]: ... Ruby script only extracts parts of the source code as Windows-specific files aren't considered relevant

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (8)
As of 2018-07-23 11:34 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (464 votes). Check out past polls.