Самое простое решение - найти /[.]log$/
в $f1
и добавить его, если его нет.К сожалению, это означает, что когда пользователь переходит в "foo.log"
и хочет, чтобы он стал "foo.log.log"
, этого не произойдет, но я думаю, мы можем согласиться с тем, что пользователь - придурок.
Лучший вариант, который сделаетсчастливый придурок:
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
GetOptions(
'a=s' => \my $f1,
'b=s' => \my $f2,
'c=s' => \my $f3,
);
if (defined $f1) {
$f1 .= ".log";
} else {
$f1 = "f1.log";
}
print "$f1\n";
Если вы хотите определить все имена по умолчанию вверху, используйте для этого другую переменную (в любом случае, вероятно, лучше читать код):
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
my $default_f1 = "f1.log";
my $default_f2 = "f2.log";
my $default_f3 = "f3.log";
GetOptions(
'a=s' => \my $f1,
'b=s' => \my $f2,
'c=s' => \my $f3,
);
if (defined $f1) {
$f1 .= ".log";
} else {
$f1 = $default_f1;
}
print "$f1\n";