जैसा कि लोग कहते हैं कि मेरे पास मॉड्यूल में मेरे तरीके टेम्पलेट्स हैं: use PMG::PMGBase;
और प्रारंभिक स्क्रिप्ट escafolding के लिए, एक emacs उपयोगकर्ता के रूप में, मेरे पास मेरी perl-insert-start और perl-add-getoption टेम्पलेट्स हैं, लेकिन चीजें लिखना :
(defun perl-insert-start()
"Places #!..perl at the start of the script"
(interactive)
(goto-char (point-min))
(insert "#!/usr/bin/env perl\n\n")
(insert "=head1 [progam_name]\n\n")
(insert " description:\n\n")
(insert "=cut\n\n")
(insert "use feature ':5.10';\n")
(insert "use strict;\n")
(insert "#use warnings;\n")
(insert "#use Data::Dumper;\n")
)
थोड़ा थकाऊ है। तो पर अंत मुझे एक पर्ल टेम्पलेट स्क्रिप्ट (नीचे देखें) के लिए, और से कॉल करने के लिए आसान है चलाने के आदेश-ऑन-क्षेत्र:
#!/usr/bin/env perl
=head1 [progam_name]
description:
=cut
use feature ':5.10';
use strict;
use Getopt::Long;
my $prog = $0;
my $usage = <<EOQ;
Usage for $0:
>$prog [-test -help -verbose]
EOQ
my $help;
my $test;
my $debug;
my $verbose =1;
my $ok = GetOptions(
'test' => \$test,
'debug:i' => \$debug,
'verbose:i' => \$verbose,
'help' => \$help,
);
if ($help || !$ok) {
print $usage;
exit;
}
print template();
sub template {
##
### Here start the template code
##
return <<'EOT';
#!/usr/bin/env perl
=head1 [progam_name]
description: This script prints a template for new perl scripts
=cut
use feature ':5.10';
use strict;
#use warnings;
#use Data::Dumper;
use Getopt::Long;
# use Template;
# use PMG::PMGBase;
# use File::Temp qw/ tempfile tempdir /;
# use File::Slurp;
# use File::Copy;
# use File::Path;
# use File::Spec;
# use File::Basename qw(basename dirname);
# use List::Util qw(reduce max min);
# use List::MoreUtils qw(uniq indexes each_arrayref natatime);
# my $PMGbase = PMG::PMGBase->new();
my $prog = $0;
my $usage = <<EOQ;
Usage for $0:
>$prog [-test -help -verbose]
EOQ
my $date = get_date();
my $help;
my $test;
my $debug;
my $verbose =1;
my $bsub;
my $log;
my $stdout;
my $stdin;
my $run;
my $dry_run;
my $ok = GetOptions(
'test' => \$test,
'debug:i' => \$debug,
'verbose:i' => \$verbose,
'help' => \$help,
'log' => \$log,
'bsub' => \$bsub,
'stdout' => \$stdout,
'stdin' => \$stdin,
'run' => \$run,
'dry_run' => \$dry_run,
);
if ($help || !$ok) {
print $usage;
exit;
}
sub get_date {
my ($day, $mon, $year) = (localtime)[3..5] ;
return my $date= sprintf "%04d-%02d-%02d", $year+1900, $mon+1, $day;
}
sub parse_csv_args {
my $csv_str =shift;
return [split ',', $csv_str];
}
EOT
}
स्रोत
2010-09-27 01:48:59
ब्लेह, महान सुझाव , [लेकिन 'आधुनिक :: पर्ल' पर्याप्त नहीं है ...] (https://rt.cpan.org/Public/Bug/Display.html?id=43061) –
आप इसे' # बनाना चाहते हैं!/usr/bin/perl' या यहां तक कि '#!/usr/bin/env perl'। –
@Evan - यह व्यक्तिपरक – Quentin