2024 π Daylatest newsbuy art
Thoughts rearrange, familiar now strange.Holly Golightly & The Greenhornes break flowersmore quotes
very clickable
data + munging

The Perl Journal

Volumes 1–6 (1996–2002)

Code tarballs available for issues 1–21.

I reformatted the CD-ROM contents. Some things may still be a little wonky — oh, why hello there <FONT> tag. Syntax highlighting is iffy. Please report any glaring issues.

(2000) The Perl Journal One Liners. The Perl Journal, vol 5(1), issue #17, Spring 2000.

The Perl Journal One Liners


TPJ One-Liner #44

Asteroid 2000 BF19 was thought to be on a potentially dangerous approach path for us Terrans, with a possible impact in 2022. A Perl program called clomon.pl showed that the asteroid cannot come any closer than 0.038 AU for the next fifty years. Sleep tight!

—Based on email from Andrea Milani and Scott Manley

TPJ One-Liner #45

Tracking the progress of a file as it downloads:


perl -e 'BEGIN{$|=1;$f=$ARGV[0];$s=(stat$f)[7];$t=time}
	    while(sleep 1){printf"\r$f %s bytes at %.2f Kb/s   ",
        $_=(stat$f)[7],($_-$s)/1024/(time-$t)}' 

your_downloading_file

—Courtesy Philippe Bruhat

TPJ One-Liner #46

A full list of installed (but nonstandard) modules, and where they are located:


#!/usr/bin/perl -w
use strict;		  # all variables must be declared
use Getopt::Std;            # import the getopts method
use ExtUtils::Installed;    # import the package

use vars qw($opt_l $opt_s); # declaring the two option switches
&getopts('ls');             # $opt_l and $opt_s are set to 1 or 0
unless($opt_l or $opt_s) {  # unless one switch is true (1)
  die "pmods: A utility to list all installed (nonstandard) modules\n",
      "  Usage: pmods.pl -l # list each module and all its directories\n",
      "        pmods.pl -s  # list just the module names\n";
}

my $inst  = ExtUtils::Installed->new();
foreach my $mod ( $inst->modules() ) { # foreach of the installed modules
  my $ver = $inst->version($mod);      # version number of the module
     $ver = ($ver) ? $ver : 'NONE';    # for clean operation
  print "MODULE: $mod version $ver\n"; # print module names
  map { print "  $_\n" } $inst->directories($mod) if($opt_l);
}

—Courtesy William H. Asquith et al.

TPJ One-Liner #47

Print a message if a daylight savings time change occurs within the next 5 days:


print "\aTIME CHANGE COMING!\n"
   if (localtime(time))[8] ne (localtime(time+5*24*60*60))[8];

—Courtesy J.D. Laub

TPJ One-Liner #48

Reverse for syntax to print out Perl’s include path:


perl -e 'print "$_\n" for @INC'

TPJ One-Liner #49

You can create a reference to a scalar like so:


   $ref = \$var;

In recent versions of Perl, you can also say:

   $ref = *var{SCALAR};

The same holds for other data types.

TPJ One-Liner #50

Upcoming in Perl 5.6:

A new keyword, our, which is like my but is package-aware.

TPJ One-Liner #51

$^O contains the name of your operating system.

TPJ One-Liner #52

The Data::Dumper module, bundled with Perl, can save data structures to disk as strings that can be read in by another program.

Martin Krzywinski | contact | Canada's Michael Smith Genome Sciences CentreBC Cancer Research CenterBC CancerPHSA
Google whack “vicissitudinal corporealization”
{ 10.9.234.152 }