--- a2ps-j.orig	2012-02-23 15:04:21.000000000 +0900
+++ a2ps-j	2012-10-02 01:58:37.000000000 +0900
@@ -1,4 +1,4 @@
-#!/usr/local/bin/perl
+#!/usr/bin/env perl
 ;#
 ;# a2ps: ascii to ps
 ;#
@@ -56,9 +56,12 @@
 @param_b4 = (10.15, 14.31, 1.40, 1.2, 8.50, 9.5, 0.29, 0.22, 0.08, 'b4');
 sub paper {
     local(*param) = 'param_' . $_[0];
-    die "Unknown paper type: $_[0]\n" unless defined @param;
-    ($width, $height, $lmargin, $smargin, $fontsize_l, $fontsize_p,
-     $portrait_header, $landscape_header, $paper_adjust, $paper_tray) = @param;
+    if (@param) {
+	($width, $height, $lmargin, $smargin, $fontsize_l, $fontsize_p,
+	 $portrait_header, $landscape_header, $paper_adjust, $paper_tray) = @param;
+    } else {
+	die "Unknown paper type: $_[0]\n";
+    }
 }
 &paper($default_paper);
 
@@ -192,7 +195,8 @@
 
 if ($debug == 2) {
     require('dumpvar.pl');
-    local($#) = '%.6g';
+##  Perl 5.10.1 says $# is no longer supported
+##  local($#) = '%.6g';
     &dumpvar('main',
 	     'width', 'height', 'lmargin', 'smargin', 'font_size',
 	     'sheet_height', 'sheet_width', 'char_width', 'skip_column',
@@ -208,8 +212,14 @@
     $file = shift;
     if ($file && !-r $file) { warn "$file: $!\n"; next; }
     if ($jisconvert) {
-	require 'flush.pl';
-	&flush(STDOUT);
+	# flush.pl obsolete (originally in Perl 4)
+	# replaced with equivalent code of &flush(STDOUT)
+	local($old_stdout) = select(STDOUT);
+	$| = 1;
+	print "";
+	$| = 0;
+	select($old_stdout);
+	# end of equivalent code
 	open(F, "-|") || &jis($file);
     } else {
 	$file = '-' if $file eq '';
@@ -410,7 +420,6 @@
     unless ($selfconvert) {
 	shift while @_ > 0 && $_[0] eq '';
 	exec('nkf', '-b', '-j', @_);
-	exec('jconv', '-j', @_);
     }
     if (($file = shift) ne '') {
 	open(STDIN, $file) || die "$file: $!\n";
@@ -476,10 +485,13 @@
 }
 
 sub print_header {
-    require('ctime.pl');
     return if $header_is_printed++;
 
-    chop(local($date) = &ctime(time));
+    # ctime.pl obsolete (originally in Perl 4)
+    # ctime.pl behaves differently when TZ is not set,
+    # but the behavior will not affect the PostScript file details
+    local($date) = scalar localtime;
+
     local($orientation) = $portrait ? "Portrait" : "Landscape";
 
     print <<"---";
@@ -525,7 +537,8 @@
     printf("/lines %d def\n", $linesperpage);
     printf("/columns %d def\n", $columnsperline);
     $sublabel = $default_sublabel unless defined $sublabel;
-    print "/date (", &date($sublabel, time), ") def\n";
+    # function name changed to a2ps_date to avoid confusion
+    print "/date (", &a2ps_date($sublabel, time), ") def\n";
     if ($ascii_mag) {
 	printf("/doasciimag true def /asciimagsize %f def\n", $ascii_mag);
     } else {
@@ -548,7 +561,8 @@
     print "%%EndProlog\n\n";
 }
 
-sub date {
+# function name changed to a2ps_date to avoid confusion
+sub a2ps_date {
     local($_, $time) = @_;
     local($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime($time);
     $year += 1900;
