| datafile.each(s ->
    s.chomp!
    s.size.println                      # output size of line
)
lines = datafile.lines
whole_file = file.whole
["One", "two", "three" ].each(print(handle,))  # "Onetwothree"
println("Baa baa black sheep.")         # Sent to default output handle
buffer = handle.read(4096)
handle.truncate(length)
"tmp/{Sys::pid}.pid".truncate(length)
pos = datafile.tell_seek
println("I'm {pos} bytes from the start of DATAFILE.")
logfile.seek!(End)
datafile.seek!(0)
out.seek!(out.tell_seek - 20)
datafile = datafile.print(mystring)
block = infile.read(256)                # can't do offset writing of 5
 | 
| 
while not fh.empty? do
    lines = fh.take_while(substr!?(, "\\$", ""))
    line = lines.join("")
    # process full record in {line} here
 | 
| 
file.open.lines.size
f = file.open(Sep_keep("\n+"))         # enable paragraph mode for "line", "lines", "each"...
f.lines.size | 
| Sys::stdall.each(s ->
    s.words.each(word ->
        # do something with {word}
    )
)
Sys::stdall.reopen(Sep("\s+")).each(s ->
    # do something with {word}
)
# Make a word frequency count
seen = {}
Sys::stdall.reopen(Sep("\s+")).each(s -> seen{s.downcase}++)
# output hash in a descending numeric sort of its values
seen.keys.sort_by(a,b -> seen{b} <=> seen{a})
    .iter(word -> "%5d %s\n".printf(seen{word}, word))
# Line frequency count
seen = {}
Sys::stdall.each(s -> seen{s.downcase}++)
# output hash in a descending numeric sort of its values
seen.keys.sort_by(a,b -> seen{b} <=> seen{a})
    .iter(line -> "%5d %s".printf(seen{line}, line)) | 
| file.lines.reverse.each(line ->
    # do something with {line}
)
file.open(Sep_keep("\n+")).lines.reverse.each(paragraph ->
    # do something with paragraph    
) | 
| loop
    fh.each(line ->
        # ...
    )
    sleep(sometime)
    # clearerr?
 | 
| i = 0
line = stdall.find(_ -> i++ ; random(i) == 0)
# {line} is the random line
i = 0
adage = "/usr/share/games/fortunes"
    .open(Sep("%\n"))
    .find(_ -> i++ ; random(i) == 0)
adage.print  | 
| input.lines.randomize.each(s -> output.print(s)) | 
| i = 0
line = handle.find(_ -> i++ ; i == desired_line_number)
line = handle.to_list[desired_line_number]
build_index(data_file, index_file) =
    offset = 0
    in.each(_ ->
        out.print(offset.pack("N"))
        offset = in.tell_seek
    )
    
line_with_index(data_file, index_file, line_number) =
    i_offset = line_number-1 * pack_size("N")
    index_file.seek!(i_offset) or return
    
    entry = index_file.read(pack_size("N"))
    d_offset = entry.unpack("N")
    data_file.seek!(d_offset)
    data_file.line
# usage:
in = file.open
index = "{file}.idx".open(R | W)
build_index(in, index)
line = line_with_index(in, index, seeking) | 
| "3+5-2".split("([+-])")                 #=> [ "3", "+", "5", "-", "2" ]
fields = record.split(":")
fields = record.split("\s+")
fields = record.words | 
| fh = file.open(R | W) addr = 0 fh.each(_ -> addr = fh.tell_seek if not file.empty?) fh.truncate!(addr) | 
| # don't care about non-UNIX ;pp | 
| address = recsize * recno fh.seek!(address) buffer = fh.read(recsize) | 
| address = recno * pack_size(format)
fh.seek!(address)
fields = fh.read_unpack(format)
# update fields, then
fh.seek!(address)
fields.pack_print(format, fh)
# weekearly -- set someone's login date back a week
user    = Sys::args[0] or Sys::env{"USER"} or Sys::env{"LOGNAME"}
typedef = "L A12 A16"                   # linux fmt; sunos is "L A8 A16"
address = Sys::getpwnam(user){Uid} * pack_size(typedef)
lastlog = "/var/log/lastlog".open(R | W)
    or die("can't update /usr/adm/lastlog: {Sys::errno_string}")
lastlog.seek!(address)
(time, line, host) = lastlog.read_unpack(typedef)
time -= 24 * 7 * 60 * 60                # back-date a week
lastlog.seek!(address)
(time, line, host).pack_print(typedef, lastlog) | 
| file : addrs = Sys::args
if addrs == [] then die("usage: {Sys::progname} addr ...\n")
        
fh = file.open(Sep("\0"))
addrs.each(s ->
    fh.seek!(s.to_int)
    qq(%#x %#o %d "%s"\n).printf(addr, addr, addr, fh.line)  
) | 
| while not file.empty? do
    fields = file.read_unpack(template)
    # use fields
 | 
| config.each(s ->
    s.chomp!                            # no newline
    s.subst!("#.*", "")                 # no comments
    s.chop_bounding_spaces!             # no leading white, no trailing white
    s.m!(
        "(\S*)\s*=\s*(.*)", 
        var, value -> User_Preferences{var} = value
    )
) | 
| info = File::stat(filename)
println("Superuser owns filename") if info{Uid} == 0
println("filename has been read since it was written.") if info{Atime} > info{Mtime} |