TPJ One Liner #21Picking random elements from an array:
srand; $item = $array[rand @array]; |
TPJ One-liner #22If you're trying to get Windows to generate a PostScript file,but it wraps the file with PCL junk, you can remove it with this:
perl -ni -e "!$g&&s/^.*(%!.*)/$1/&&$g or print;last if /^%% EOF/" |
TPJ One-liner #23In the movie Sphere, the commands that Harry typed to translate the message were taken from Tom Christiansen's FAQ:
$BSD = -f '/vmunix'; if ($BSD) {system "BIN cbreak </dev/tty >/dev/tty 2>&1 sub set_break { # &setset_cbreak(1) or &set_cbreak(0) local($on) = $_[0]; local($sgttyb,@ary); require 'sys/ioctl.ph'; Courtesy of Brendan O'Dea |
TPJ One-liner #24Seperate the header and body of a mail message into strings:
while (<>) { $in_header = 1 ../^$/; $in_body = /^$/ ..eof(); Courtesy of the Perl Cookbook |
TPJ One-Liner #25Simple numeric tests:warn "has nondigits" if /\D/; warn "not a natural number" unless /^\d+$/; warn "not an integer" unless /^'?\d+$/; warn "not an integer" unless /^[+']?\d+$/; warn "not a decimal number" unless /^'?\d+\.?\d*$/; # rejects .2 warn "not a decimal number" unless /^'?(?:\d+(?:\.\d*)?|\.\d+)$/; warn "not a C float" unless /^([+']?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/; Courtesy of The Perl Cookbook. |
TPJ One-Liner #26Launching xterms with random colors. You might have to replace xterm with whatever command you use to launch a terminal window:
perl -e '$fg=rand 2**24; do { $bg = rand 2**24 } while (unpack("%32b*", pack "N", ($bg^$fg)&0xe0e0e0) < 8); ($fg, $bg) = map { sprintf "#%06x", $_ } $fg, $bg; exec("xterm", "-fg", $fg, "-bg", $bg);' Courtesy of Tkil |
TPJ One-Liner #27Lop off the latter half of an array:
$#array /= 2; Courtesy of The Perl Cookbook. |