Substituindo getopts.pl por Getopt :: Std [closed]

0

Estou usando o Cygwin versão 2.10.0 com o perl 5.26.0. Preciso alterar getopts.pl para Getopt::Std , mas o que fazer com &Getopts('F:f:'); linha?

#! /usr/bin/perl
require "getopts.pl" ;

# Perl script to take particle data and
# plot using (in this case) GMT to 
# produce a postscript file of specified size.
# Assumption is that this is a frame for a movie
# and hence that time information is meaningful

&Getopts('F:f:');
# Options:   -f: Filename for input data
# Options:   -F: Filename (root) for output data

# default values for parameters if not specified
if($opt_F eq "") {
  $opt_F = "ascii-conversion";
}

# Read the particle file ...   Assume 2D !! 
open(PAR,"< $opt_f") || die "File not found $opt_f\n";
open(OUT,"> $opt_F") || die "File not found $opt_F\n";
# open(OUT,">$name") || die "Cannot open file $name : $!\n";
    
por Naside Ozer 22.03.2018 / 13:37

1 resposta

2

Veja Getopt::Std : você deve ser capaz de simplesmente substituir

require "getopts.pl";
&Getopts('F:f:');

com

use Getopt::Std;
getopts('F:f:');

Se você também use warnings; e use strict; (como geralmente é recomendado), será necessário declarar as variáveis antes com our ($opt_F, $opt_f); . Como alternativa, você pode usar um hash:

getopts('F:f:', \my %opts);
$opts{f} # instead of $opt_f
$opts{F} # instead of $opt_F
    
por 22.03.2018 / 14:32

Tags