скрипт отладки perl - переменная интерполяция - PullRequest
1 голос
/ 28 ноября 2011

Попробуйте отладить этот скрипт.Я думаю, что это может быть проблема переменной интерполяции?Я не уверен.Он работает с использованием опций, если я передаю значения следующим образом:

perl test-file-exists.pl --file /proj/Output/20111126/_GOOD

Я пытаюсь удалить опцию передачи --file, поскольку мне нужно генерировать дату динамически.

perl test-file-exists.pl

Учитывая изменения кода ниже (я закомментировал часть опций).Я пытаюсь создать строку (см. $chkfil).Я получаю сообщения об ошибках $dt4.Так или иначе, это не передается в файловой строке, которую я создаю в этот другой модуль.

use strict;
use warnings;
use lib '/home/test/lib';
use ProxyCmd;
use Getopt::Long;

#
### Set up for Getopt
#
#my $chkfil;
#my $help; 

#usage() if ( @ARGV < 1 or                       
#          ! GetOptions('help|?' => \$help,
#                       'file=s' => \$chkfil)
#     or defined $help );

my $cmd = ProxyCmd->new( User=>"test_acct",
                    AuthToken=>"YToken",
                  loginServer=>"host.com");

# Get previous day
my $dt4 = qx {date --date='-1day' +'%Y%m%d'};

# Check file
my $chkfil = qq{/proj/Output/$dt4/_GOOD};

# Now test the fileExists function
print "Checking 'fileExists':\n";
my $feResults = $cmd->fileExists("$chkfil");

if ($feResults == 0) {
    print "File Exists!\n";
    } else {
      print "File Does Not Exist\n";
}

sub usage
{
  print "Unknown option: @_\n" if ( @_ );
  print "usage: program [--file /proj/Output/20111126/_GOOD] [--help|-?]\n";
  exit;
}

1 Ответ

3 голосов
/ 28 ноября 2011

Когда вы используете обратные метки или qx, вы включаете завершающий символ новой строки, поэтому chomp отключите его:

my $dt4 = qx {date --date='-1day' +'%Y%m%d'};
chomp $dt4;

, и вы получите разумное имя файла.

Вы также можете использовать DateTime и друзей, чтобы полностью избежать обстрела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...