#!/usr/athena/bin/perl
#
# pxref -- perl cross referencer
# Tom Christiansen <tchrist@convex.com>



format STDOUT = 
@<<<<<<<<<<<<<<<<<<<<< ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$var, $lines
~~                     ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
		$lines
.


$ARGV[0] eq '-n' && (shift, $number++);

while (<>) {
    while (/([\@%\$*&][\w']+)/g) {
	$vars{$1} .= "$. ";
    } 
} 

@keys = $number ? sort byvallen keys %vars : reverse sort keys %vars;


foreach $var (@keys) {
    $lines = $vars{$var};
    write;
} 

sub byvallen {
    length($vars{$b}) <=> length($vars{$a});
} 
