#----------------------------- |
while (<>) { |
# do something with the line |
} |
#----------------------------- |
while (<>) { |
# ... |
} |
#----------------------------- |
unshift ( @ARGV , '-' ) unless @ARGV ; |
while ( $ARGV = shift @ARGV ) { |
unless ( open (ARGV, $ARGV )) { |
warn "Can't open $ARGV: $!\n" ; |
next ; |
} |
while ( defined ( $_ = <ARGV>)) { |
# ... |
} |
} |
#----------------------------- |
@ARGV = glob ( "*.[Cch]" ) unless @ARGV ; |
#----------------------------- |
# arg demo 1: Process optional -c flag |
if ( @ARGV && $ARGV [0] eq '-c' ) { |
$chop_first ++; |
shift ; |
} |
# arg demo 2: Process optional -NUMBER flag |
if ( @ARGV && $ARGV [0] =~ /^-(\d+)$/) { |
$columns = $1 ; |
shift ; |
} |
# arg demo 3: Process clustering -a, -i, -n, or -u flags |
while ( @ARGV && $ARGV [0] =~ /^-(.+)/ && ( shift , ( $_ = $1 ), 1)) { |
next if /^$/; |
s/a// && (++ $append , redo ); |
s/i// && (++ $ignore_ints , redo ); |
s/n// && (++ $nostdout , redo ); |
s/u// && (++ $unbuffer , redo ); |
die "usage: $0 [-ainu] [filenames] ...\n" ; |
} |
#----------------------------- |
undef $/; |
while (<>) { |
# $_ now has the complete contents of |
# the file whose name is in $ARGV |
} |
#----------------------------- |
{ # create block for local |
local $/; # record separator now undef |
while (<>) { |
# do something; called functions still have |
# undeffed version of $/ |
} |
} # $/ restored here |
#----------------------------- |
while (<>) { |
print "$ARGV:$.:$_" ; |
close ARGV if eof ; |
} |
#----------------------------- |
# download the following standalone program |
#!/usr/bin/perl |
# findlogin1 - print all lines containing the string "login" |
while (<>) { # loop over files on command line |
print if /login/; |
} |
#----------------------------- |
# download the following standalone program |
#!/usr/bin/perl -n |
# findlogin2 - print all lines containing the string "login" |
print if /login/; |
#----------------------------- |
#% perl -ne 'print if /login/' |
#----------------------------- |
# download the following standalone program |
#!/usr/bin/perl |
# lowercase - turn all lines into lowercase |
use locale; |
while (<>) { # loop over lines on command line |
s/([^\W0-9_])/\l $1 /g; # change all letters to lowercase |
print ; |
} |
#----------------------------- |
# download the following standalone program |
#!/usr/bin/perl -p |
# lowercase - turn all lines into lowercase |
use locale; |
s/([^\W0-9_])/\l $1 /g; # change all letters to lowercase |
#----------------------------- |
#% perl -Mlocale -pe 's/([^\W0-9_])/\l$1/g' |
#----------------------------- |
# download the following standalone program |
#!/usr/bin/perl -n |
# countchunks - count how many words are used. |
# skip comments, and bail on file if _ _END_ _ |
# or _ _DATA_ _ seen. |
for ( split /\W+/) { |
next LINE if /^ #/; |
close ARGV if /_ _(DATA|END)_ _/; |
$chunks ++; |
} |
END { print "Found $chunks chunks\n" } |
#----------------------------- |
#+0894382237 |
#less /etc/motd |
#+0894382239 |
#vi ~/.exrc |
#+0894382242 |
#date |
#+0894382242 |
#who |
#+0894382288 |
#telnet home |
#----------------------------- |
#% perl -pe 's/^#\+(\d+)\n/localtime($1) . " "/e' |
#Tue May 5 09:30:37 1998 less /etc/motd |
# |
#Tue May 5 09:30:39 1998 vi ~/.exrc |
# |
#Tue May 5 09:30:42 1998 date |
# |
#Tue May 5 09:30:42 1998 who |
# |
#Tue May 5 09:31:28 1998 telnet home |
#----------------------------- |